Apa saja bagian dari URL?

Biasanya, Anda dapat mengatakan hal-hal seperti "Saya membeli domain" atau "Gambar kami dihosting di situs lain", meskipun hal itu tidak sepenuhnya benar. Namun, dalam beberapa konteks, Anda harus lebih akurat. Misalnya, saat menangani cookie, Anda perlu memahami perbedaan antara situs dan origin.

Nama untuk bagian URL ditentukan dalam standar, yang juga menentukan JavaScript API:

  • Standar URL menentukan URL dan konsep terkait agar engineer dapat membuat browser web yang interoperabilitas.
  • Komponen URL API dalam standar menentukan metode untuk memberikan akses ke bagian dari string URL, seperti skema atau asal.

Dokumen ini menjelaskan berbagai istilah yang digunakan dengan string URL HTTP atau HTTPS. Panduan ini tidak mencakup jenis URL lain seperti URL file atau data. Untuk istilah seperti host dan origin, definisi yang akurat pada dasarnya bersifat kompleks, sehingga dokumen ini memberikan contoh dan link ke standar URL, bukan mencoba memberikan penjelasan lengkap.

Anda dapat menggunakan JavaScript untuk mendapatkan nama komponen URL yang ditentukan oleh URL API. Contoh:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

Penganalisis URL

Edit URL di bawah untuk melihat cara penamaan bagian string URL. Anda juga dapat membukanya di tab terpisah di url-parts.glitch.me.


Nama untuk bagian URL tercantum dalam urutan abjad di bawah.

Domain level teratas kode negara (ccTLD)

Domain level teratas yang ditentukan dalam daftar Kode Negara ISO 3166-1.

  • Untuk https://example.org.au, ccTLD-nya adalah au.
  • Untuk https://example.io, ccTLD-nya adalah io.

Nama domain

Bagian URL HTTP atau HTTPS yang dipisahkan titik: semua yang ada setelah skema, tetapi sebelum jalur atau port (jika ditentukan). Setiap bagian dari nama domain dikenal sebagai label.

URL Nama domain
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Domain level teratas efektif (eTLD)

Entri dalam Daftar Suffix Publik, termasuk TLD dan (untuk eTLD dengan beberapa bagian) domain tambahan di bawahnya: tingkat kedua, tingkat ketiga, dan seterusnya.

  • Misalnya: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

"Akhiran publik", seperti contoh ini, adalah nama tempat domain dapat didaftarkan. Daftar Akhiran Publik adalah daftar semua akhiran publik yang diketahui, dan sering diperbarui. Browser termasuk Chromium dan Firefox menggunakan daftar dalam build-nya.

eTLD+1

Lihat domain yang dapat didaftarkan.

eTLD ditambah subdomain yang mendahuluinya.

  • Misalnya: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Nama file

Tidak ditentukan dalam standar URL, dan bukan bagian dari URL API, tetapi biasa digunakan untuk merujuk ke bagian akhir URL yang bukan jalur berdasarkan asumsi—yang sering kali salah—bahwa URL dipetakan langsung ke struktur direktori.

Misalnya, dengan https://example.com/dir/file.html, file.html mungkin disebut sebagai nama file.

Nilai nama file juga digunakan oleh browser untuk memberi nama aset jika didownload. Misalnya, https://example.com/images/image.jpg biasanya akan disimpan secara lokal ke image.jpg.

Fragmen

String setelah karakter # di akhir URL yang menyediakan ID fragmen.

  • Misalnya: URL https://example.com/cats#tabby memiliki nilai ID fragmen tabby.

Bagian yang menyertakan # dikenal sebagai hash atau anchor. Anda juga dapat menautkan ke dan menandai fragmen teks.

Hash ditampilkan oleh URL API, bukan oleh fragmen.

Nama domain yang sepenuhnya memenuhi syarat (FQDN)

Alamat lengkap untuk situs atau server, yang dipetakan ke alamat IP.

URL FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

FQDN untuk URL tidak menyertakan port, meskipun port non-default digunakan.

Hash (atau anchor)

String setelah karakter # di akhir URL yang menyediakan ID fragmen.(Dalam beberapa konteks, ini disebut sebagai "anchor".)

Bagian yang mengecualikan # dikenal sebagai fragmen. Anda juga dapat menautkan ke dan menandai fragmen teks.

Hash ditampilkan oleh URL API, bukan oleh fragmen.

Host

Seperti yang ditentukan dalam standar URL, host dapat berupa nama domain, alamat IP v4, alamat IPv6, host buram, atau host kosong.

  • Definisi standar URL host tidak mencakup port.
  • URL.host menyertakan port, kecuali jika port adalah default untuk skema.
  • URL.hostname tidak menyertakan port.
URL URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

Hostname

Nama host ditentukan oleh JavaScript URL API, tetapi tidak di tempat lain oleh standar URL. Lihat representasi host untuk detail selengkapnya.

URL.hostname menampilkan host tanpa port.

URL URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

Asal

Standar URL menentukan origin, dan menautkan ke standar HTML untuk latar belakang.

Untuk URL HTTP atau HTTPS, URL.origin menampilkan skema, host, dan port (kecuali jika port adalah default untuk skema).

URL URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

Parameter

Lihat Parameter penelusuran

Sandi

Lihat nama pengguna.

Nama jalur

Untuk URL HTTP atau HTTPS, bagian setelah domain dan port (jika ditentukan), termasuk filename (jika ditentukan), tetapi tidak termasuk string penelusuran atau hash.

URL URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

"Jalur" terkadang digunakan untuk merujuk ke jalur nama tanpa nama file. Misalnya, untuk URL https://example.com/cat/pattern/tabby.html, "jalur" adalah /cat/pattern.

Port

Angka setelah : di URL yang mengidentifikasi port jaringan. Misalnya: untuk URL https://example.com:1234/tabby, nomor port-nya adalah 1234.

Nomor port harus berupa bilangan bulat tanpa tanda tangan 16-bit: dengan kata lain, bilangan bulat antara 0 dan 65535 inklusif.

Untuk URL HTTP, port default-nya adalah 80; untuk HTTPS, port default-nya adalah 443. URL tidak perlu menentukan nomor port kecuali jika port non-default digunakan.

API menampilkan string kosong jika port adalah default untuk skema.

URL URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

Protokol

Skema diikuti dengan : (misalnya http: atau https:).

protocol tersedia dari URL API, tetapi scheme tidak.

Kueri (atau "string kueri")

Bagian penelusuran URL, tidak termasuk ? awal.

Domain yang dapat didaftarkan

  • Untuk URL dengan eTLD satu bagian seperti com atau org (yaitu eTLD yang sesuai dengan TLD), domain dan domain level kedua sebelum domain tersebut: misalnya, example.com atau example.org.
  • Untuk URL dengan eTLD dua bagian yang hanya mengizinkan pendaftaran level ketiga (yaitu entri dalam Daftar Suffix Publik seperti com.au dan github.io), domain level teratas dua bagian ("akhiran publik") dan nama domain level ketiga tepat sebelum itu. Misalnya: example.org.au atau example.github.io.
  • Untuk eTLD dengan tiga bagian atau lebih, eTLD dan domain sebelum itu.

Skema

Bagian URL (sebelum ://) yang menentukan protokol jaringan (atau tindakan yang akan dilakukan oleh agen pengguna) saat permintaan dibuat ke URL. Misalnya, permintaan ke URL dengan skema https harus dibuat menggunakan protokol HTTPS. Untuk permintaan ke URL dengan skema seperti file, mailto, atau git yang tidak sesuai dengan protokol jaringan, perilaku bergantung pada agen pengguna. Misalnya, saat pengguna mengklik link mailto, sebagian besar browser akan membuka aplikasi email default mereka, menggunakan nilai di URL href link.

Tanda tanya yang diikuti oleh serangkaian pasangan nilai kunci yang mewakili parameter dan nilainya, yang diberikan setelah pathname.

URL URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

query atau "string kueri" mengacu pada search tanpa ? di awal.

Lihat juga Parameter penelusuran.

Parameter penelusuran

Lihat item data yang diteruskan dalam string penelusuran (atau "string kueri").

  • Misalnya: untuk https://example.com/cats?pattern=tabby&mood=bonkers, string penelusuran memiliki dua parameter: pattern=tabby dan mood=bonkers.

Domain level kedua

Domain sebelum domain level teratas.

  • Untuk URL https://www.example.com, domain level kedua adalah example.com, subdomain dari domain level teratas com.

  • Untuk https://example.org.au, domain level teratas adalah au, domain level kedua adalah org, dan domain level ketiga adalah example. Dalam contoh ini, org.au adalah subdomain dari au dan example.org.au adalah subdomain dari org.au.

Situs

Situs ditentukan oleh standar HTML, bersama dengan situs yang sama, yang menyertakan skema, dan situs yang sama tanpa skema.

Situs tidak ditentukan dalam standar URL atau JavaScript URL API.

Dalam konteks ini:

  • Untuk URL HTTP atau HTTPS dengan eTLD satu bagian seperti https://example.com, situs terdiri dari scheme, eTLD, dan label sebelum itu. Misalnya: untuk URL https://www.example.com/cat, situsnya adalah https://example.com. (Untuk URL ini, eTLD sama dengan domain level teratas.)
  • Untuk eTLD multibagian seperti co.uk, github.io, atau sa.edu.au, "situs" terdiri dari scheme, eTLD, dan label sebelum itu. Misalnya: untuk URL https://cat.example.co.uk/tabby, situsnya adalah https://example.co.uk, dan untuk https://www.education.sa.gov.au, situsnya adalah https://education.sa.gov.au.
URL Situs (dengan skema dan eTLD +1)
https://cat.example.com/tabby ("https", "example.com")
https://cat.example.co.uk/tabby ("https", "example.co.uk")

Tidak seperti origin, situs tidak menyertakan port.

Subdomain

Domain dalam domain level yang lebih tinggi.

Untuk situs dengan domain level teratas satu bagian seperti com atau org, bagian sebelum domain level teratas, yang masing-masing dipisahkan oleh titik.

  • www.example.com adalah subdomain dari example.com.
  • support.api.example.org adalah subdomain api.example.org, yang merupakan subdomain dari example.org.

Untuk eTLD dua bagian dengan hanya pendaftaran tingkat ketiga yang diizinkan(yaitu entri dalam Daftar Suffix Publik seperti co.uk dan github.io), subdomain adalah bagian dari nama domain sebelumnya.

  • Misalnya: cat.example.co.uk adalah subdomain dari example.co.uk.

Fragmen teks

Jenis fragmen yang memungkinkan penautan ke dan menandai rentang teks dalam halaman. Saat pengguna mengikuti link dengan fragmen teks, browser akan mencoba menemukan, men-scroll ke, dan menandai teks dalam halaman.

Fragmen teks dimulai dengan :~:text= diikuti dengan istilah penelusuran.

Misalnya, untuk menautkan ke kemunculan pertama teks "fragmen" di halaman ini, gunakan URL https://web.dev/articles/url-parts#:~:text=fragment.

Cari tahu lebih lanjut: Fragmen teks.

Domain level teratas (TLD)

Nama domain yang tercantum dalam Database Zona Root seperti com atau org. Beberapa domain level teratas adalah domain level teratas kode negara, seperti uk dan tv.

Saat mendeskripsikan bagian-bagian URL HTTP atau HTTPS, TLD adalah nama domain yang mengikuti titik terakhir.

  • Untuk https://example.org, domain level teratas URL adalah org.
  • Untuk https://example.org.au, domain level teratas URL adalah au, dan org adalah domain level kedua (meskipun org juga merupakan domain level teratas). org.au adalah eTLD dua bagian.

Daftar Akhiran Publik eTLD mencakup domain dengan satu, dua, atau lebih bagian, sehingga TLD juga dapat menjadi eTLD. Contoh:

  • Untuk https://example.com, eTLD URL-nya adalah com, yang juga merupakan TLD.

Nama pengguna

Nama pengguna dan sandi opsional dapat diberikan di awal URL, tetapi tidak digunakan lagi karena alasan keamanan dan akan diabaikan dalam banyak kasus.

Misalnya, dengan https://user123:password1@example.com, nama penggunanya adalah user123. Perhatikan bahwa nama pengguna (dan sandi) dalam teks biasa dan tidak dienkripsi. Jika nama pengguna berisi simbol : atau @, nama pengguna tersebut harus dienkode URL menjadi %3A dan %40.


Cari tahu selengkapnya