Sebagian besar waktu, Anda boleh mengatakan hal-hal seperti "Saya membeli domain" atau "Gambar kami dihosting di situs lain", meskipun tidak sepenuhnya benar. Namun, dalam beberapa konteks, Anda harus lebih presisi. Misalnya, saat menangani cookie, Anda harus 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 untuk memungkinkan engineer membuat browser web yang dapat beroperasi.
- Komponen URL API dari standar menentukan metode untuk memberikan akses ke bagian string URL, seperti skema atau asal.
Dokumen ini menjelaskan berbagai istilah yang digunakan dengan string URL HTTP atau HTTPS. Dokumen ini tidak mencakup jenis URL lain seperti URL file atau data. Untuk istilah seperti host dan origin, definisi yang akurat pada dasarnya rumit, sehingga dokumen ini memberikan contoh dan link ke standar URL, daripada 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 https://chrome.dev/url-parts/.
Nama untuk bagian URL tercantum di bawah dalam urutan abjad.
Domain level teratas kode negara (ccTLD)
Domain tingkat teratas yang ditentukan dalam daftar Kode Negara ISO 3166-1.
Nama domain
Bagian URL HTTP atau HTTPS yang dipisahkan dengan titik: semua yang ada setelah skema, tetapi sebelum jalur atau port (jika ditentukan). Setiap bagian 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: level kedua, level ketiga, dan seterusnya.
- Misalnya:
com,com.au,github.io,sa.edu.au,schools.nsw.edu.au.
"Sufiks publik", seperti contoh ini, adalah nama yang digunakan untuk mendaftarkan domain. Daftar Suffix Publik adalah daftar semua suffix publik yang diketahui, dan sering diperbarui. Browser termasuk Chromium dan Firefox menggunakan daftar tersebut 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 umumnya digunakan untuk merujuk ke bagian akhir, non-jalur, dari URL berdasarkan asumsi—yang sering kali salah—bahwa URL dipetakan langsung ke struktur direktori.
Misalnya, dengan https://example.com/dir/file.html, file.html dapat disebut sebagai nama file.
Nilai nama file juga digunakan oleh browser untuk memberi nama aset jika aset tersebut didownload.
Misalnya, https://example.com/images/image.jpg biasanya disimpan secara lokal ke image.jpg.
Fragmen
String yang mengikuti karakter # di akhir URL yang menyediakan ID fragmen.
- Misalnya: URL
https://example.com/cats#tabbymemiliki nilai ID fragmentabby.
Bagian yang menyertakan # dikenal sebagai hash atau anchor.
Anda juga dapat menautkan dan menandai fragmen teks.
Hash ditampilkan oleh URL API, bukan 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 yang mengikuti karakter # di akhir URL yang menyediakan ID fragmen. (Dalam beberapa konteks, hal ini disebut sebagai "anchor".)
Bagian yang tidak termasuk # dikenal sebagai fragmen.
Anda juga dapat menautkan dan menandai fragmen teks.
Hash ditampilkan oleh URL API, bukan fragmen.
Host
Seperti yang ditentukan dalam standar URL, host dapat berupa nama domain, alamat IP v4, alamat IPv6, host buram, atau host kosong.
- Definisi
hostdalam standar URL tidak mencakup port. URL.hostmencakup port, kecuali jika port adalah default untuk skema.URL.hostnametidak 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 URL API JavaScript, tetapi tidak ditentukan di tempat lain oleh standar URL. Lihat representasi host untuk mengetahui 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 |
"Path" terkadang digunakan untuk merujuk ke nama jalur tanpa nama file. Misalnya, untuk URL https://example.com/cat/pattern/tabby.html, "jalur"
adalah /cat/pattern.
Port
Angka setelah : dalam 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 adalah 80; untuk HTTPS, defaultnya 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 pada URL, tidak termasuk ? di awal.
Domain yang dapat didaftarkan
- Untuk URL dengan eTLD satu bagian seperti
comatauorg(yaitu eTLD yang sesuai dengan TLD), domain dan domain tingkat kedua sebelumnya: misalnya,example.comatauexample.org. - Untuk URL dengan eTLD dua bagian yang hanya mengizinkan pendaftaran tingkat ketiga (yaitu entri dalam Daftar Suffix Publik seperti
com.audangithub.io), domain level teratas dua bagian ("suffix publik") dan nama domain tingkat ketiga tepat sebelum itu. Misalnya:example.org.auatauexample.github.io. - Untuk eTLD dengan tiga bagian atau lebih, eTLD dan domain sebelumnya.
Skema
Bagian URL (sebelum ://) yang menentukan protokol jaringan (atau tindakan yang akan diambil
oleh agen pengguna) saat permintaan dibuat ke URL. Misalnya, permintaan ke
URL dengan skema https harus dilakukan 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 defaultnya, menggunakan
nilai di URL href link.
Telusuri
Tanda tanya diikuti dengan serangkaian pasangan nilai kunci yang merepresentasikan 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
Merujuk ke 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=tabbydanmood=bonkers.
Domain level kedua
Domain sebelum domain level teratas.
Untuk URL
https://www.example.com, domain level keduanya adalahexample.com, yaitu subdomain dari domain level teratascom.Untuk
https://example.org.au, domain level teratas adalahau, domain level kedua adalahorg, dan domain level ketiga adalahexample. Dalam contoh ini,org.auadalah subdomain dariaudanexample.org.auadalah subdomain dariorg.au.
Situs
Situs ditentukan oleh standar HTML, bersama dengan situs yang sama, yang mencakup 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 darischeme, eTLD, dan label sebelumnya. Misalnya: untuk URLhttps://www.example.com/cat, situsnya adalahhttps://example.com. (Untuk URL ini, eTLD sama dengan domain level teratas.) - Untuk eTLD multipart seperti
co.uk,github.io, atausa.edu.au, "situs" terdiri darischeme, eTLD, dan label sebelumnya. Misalnya: untuk URLhttps://cat.example.co.uk/tabby, situsnya adalahhttps://example.co.uk, dan untukhttps://www.education.sa.gov.au, situsnya adalahhttps://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 tingkat 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.comadalah subdomain dariexample.com.support.api.example.orgadalah subdomain dariapi.example.org, yang merupakan subdomain dariexample.org.
Untuk eTLD dua bagian yang hanya mengizinkan pendaftaran tingkat ketiga(yaitu entri dalam Daftar Suffix Publik seperti co.uk dan github.io), subdomain adalah bagian dari nama domain sebelumnya.
- Misalnya:
cat.example.co.ukadalah subdomain dariexample.co.uk.
Fragmen teks
Jenis fragmen yang memungkinkan Anda menautkan 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 adalahorg. - Untuk
https://example.org.au, domain level teratas URL adalahau, danorgadalah domain level kedua (meskipunorgjuga merupakan domain level teratas).org.auadalah 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 adalahcom, yang juga merupakan TLD.
Nama pengguna
Nama pengguna dan sandi opsional dapat diberikan di awal URL, tetapi telah dihentikan penggunaannya 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!) ada dalam teks biasa dan tidak dienkripsi.
Jika nama pengguna berisi simbol : atau @, simbol tersebut harus dienkode URL menjadi %3A
dan %40.
Cari tahu lebih lanjut
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- URL API
- Memahami "same-site" dan "same-origin"
- RFC: Uniform Resource Locators (URL)
- RFC: URI, URL, dan URN
- Database Zona Root (direktori TLD)
- Public Suffix List (direktori eTLDs: "Sufiks publik adalah sekumpulan nama DNS atau karakter pengganti yang digabungkan dengan titik. Bagian ini mewakili bagian nama domain yang tidak berada di bawah kontrol pendaftar perorangan.")
- Glosarium ICANN
- Apa yang dimaksud dengan Nama Domain yang Sepenuhnya Memenuhi Syarat?
- Ada berapa cara Anda dapat membagi URL dan memberi nama bagian-bagiannya?
- Glosarium MDN Web Docs
- Apa itu URL?
- Histori URL