Apa perbedaan antara URI dan URL?

44

Saya telah membaca halaman-halaman ini:

Saya tahu dasar tentang URL, URN, dan URI; tetapi sedikit perbedaan mereka . Hal yang saya tidak mengerti adalah di halaman seperti: http://www.bernzilla.com/item.php?id=100bagian mana URL, URN dan URI!
URI seluruhnya tetapi URL dan URN ??

Gambar dari wikipedia

Edit:
dari w3c.org:

URL adalah jenis URI yang mengidentifikasi sumber daya melalui representasi mekanisme akses utama (misalnya, "lokasi" jaringannya), dan bukan oleh beberapa atribut lain yang dimilikinya.

dari www.damnhandy.com :

Sekarang dianggap salah untuk menggunakan URL saat mendeskripsikan aplikasi.

Sekarang adalah idatribut? Bagaimana dengan bagian aplikasi? Apakah PHP aplikasi?

terlepas
sumber
3
Pertanyaan ini telah ditanyakan pada Stack Overflow beberapa kali dan mendapat banyak perhatian dan tanggapan yang baik: Apa perbedaan antara URI dan URL?
hippietrail

Jawaban:

42

URI / URL Venn Diagram

URL - Uniform Resource Locator

Berisi informasi tentang cara mengambil sumber daya dari lokasinya. Sebagai contoh:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:[email protected]
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (URL relatif, hanya berguna dalam konteks URL lain)

URL selalu dimulai dengan protokol ( http) dan biasanya berisi informasi seperti nama host jaringan ( example.com) dan seringkali jalur dokumen ( /foo/mypage.html). URL dapat memiliki parameter kueri dan pengidentifikasi fragmen.

URN - Nama Sumber Daya Seragam

Mengidentifikasi sumber daya dengan nama yang unik dan persisten. Biasanya dimulai dengan awalan urn: Misalnya:

  • urn:isbn:0451450523 untuk mengidentifikasi buku dengan nomor ISBN-nya.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 pengidentifikasi unik secara global
  • urn:publishing:book - Ruang nama XML yang mengidentifikasi dokumen sebagai jenis buku.

URN dapat mengidentifikasi ide dan konsep. Mereka tidak dibatasi untuk mengidentifikasi dokumen. Ketika URN memang mewakili dokumen, itu dapat diterjemahkan ke dalam URL dengan "resolver". Dokumen kemudian dapat diunduh dari URL.

URI - Pengidentifikasi Sumber Seragam

URI mencakup URL, URN, dan cara lain untuk mengidentifikasi sumber daya.

Contoh URI yang bukan URL atau URN adalah data URI seperti data:,Hello%20World. Ini bukan URL atau URN karena URI berisi data. Itu tidak menyebutkan namanya, juga tidak memberitahu Anda bagaimana cara menemukannya melalui jaringan.

Ada juga kutipan sumber daya yang seragam (URC) yang mengarah ke meta data tentang dokumen daripada dokumen itu sendiri. Contoh dari URC akan pengidentifikasi untuk melihat kode sumber dari suatu halaman web: view-source:http://example.com/. URC adalah jenis URI lain yang bukan URL maupun URN.

Pertanyaan yang Sering Diajukan

Saya pernah mendengar bahwa saya seharusnya tidak mengatakan URL lagi, mengapa?

W3 spec untuk HTML mengatakan bahwa hreftag anchor dapat berisi URI, bukan hanya URL. Anda harus bisa memasukkan URN seperti <a href="urn:isbn:0451450523">. Browser Anda kemudian akan menyelesaikan URN itu ke URL dan mengunduh buku untuk Anda.

Apakah ada browser yang benar-benar tahu cara mengambil dokumen oleh URN?

Bukan yang saya ketahui, tetapi browser web modern menerapkan skema data URI.

Apakah perbedaan antara URL dan URI ada hubungannya dengan apakah itu relatif atau absolut?

Tidak. Baik URL relatif maupun absolut adalah URL (dan URI.)

Apakah perbedaan antara URL dan URI ada hubungannya dengan apakah URL itu memiliki parameter kueri?

Tidak. Kedua URL dengan dan tanpa parameter kueri adalah URL (dan URI.)

Apakah perbedaan antara URL dan URI ada hubungannya dengan apakah URL itu memiliki pengidentifikasi fragmen?

Tidak. Kedua URL dengan dan tanpa pengidentifikasi fragmen adalah URL (dan URI.)

Tapi bukankah W3C sekarang mengatakan bahwa URL dan URI adalah hal yang sama?

Iya. W3C menyadari bahwa ada banyak kebingungan tentang ini. Mereka mengeluarkan dokumen klarifikasi URI yang mengatakan bahwa sekarang boleh menggunakan URL istilah dan URI secara bergantian (berarti URI). Tidak lagi bermanfaat untuk mengelompokkan URI secara ketat ke berbagai jenis seperti URL, URN, dan URC.

Bisakah URI berupa URL dan URN?

Definisi URN sekarang lebih longgar dari apa yang saya nyatakan di atas. The RFC terbaru pada URI mengatakan bahwa setiap URI sekarang bisa URN (terlepas dari apakah itu dimulai dengan urn:) asalkan memiliki "sifat-sifat nama." Yaitu: Ini unik secara global dan gigih bahkan ketika sumber daya tidak lagi ada atau menjadi tidak tersedia. Contoh: URI yang digunakan dalam dokumen HTML seperti http://www.w3.org/TR/html4/strict.dtd. URI itu akan terus memberi nama dokumen transisi HTML4 bahkan jika halaman di situs web w3.org dihapus.

Stephen Ostermiller
sumber
Yang membingungkan saya tentang klarifikasi W3C dan perbedaan URL / URI adalah bahwa sebenarnya banyak dokumen server web menggambarkan URL sebagai keseluruhan string permintaan, dan URI sebagai "bagian yang mengikuti protokol". Bahkan referensi bagian dengan nama variabel $ uri. Misalnya: nginx.com/blog/creating-nginx-rewrite-rules Ini sepertinya bukan "benar" menurut definisi W3C? Tapi itu yang paling berguna menurut saya.
mike
1
URI banyak disalahpahami. Banyak orang berpikir bahwa URI adalah bagian dari URL seperti URL relatif, atau mengikuti protokol. Ini tidak pernah benar, tetapi ide-ide itu membuatnya menjadi dokumentasi server atau API pemrograman cukup sering.
Stephen Ostermiller
10

Saya pikir artikel-artikel itu menjelaskan dengan cukup baik. Untuk menjawab pertanyaan Anda - semua ini adalah URL:

http://www.bernzilla.com/item.php?id=100

Setiap bit - http: www.bernzilla.comdan seterusnya memiliki nama sendiri:

  • http: adalah skemanya
  • www adalah sub-domain
  • bernzilla.com adalah domainnya
  • com adalah domain tingkat atas atau TLD
  • (mungkin ada folder atau path di sana, mis. /dir/item.php tetapi tidak ada)
  • item.php adalah halaman atau nama file yang memiliki ekstensi php
  • id = 100 adalah string kueri

Saya dapat melihat diagram dari wikipedia mengapa Anda bertanya. Diagram itu mengatakan ada dua jenis URI - URL dan URN dan bit fuzzy di tengah adalah ketika sesuatu dapat menjadi keduanya.

paulmorriss
sumber
Terima kasih atas jawabannya. Saya mengedit pertanyaan saya. bisakah kamu melihatnya lagi?
dibatalkan
Saya tidak mengerti kutipan tentang menjelaskan aplikasi dan saya tidak bisa melihat komentar di mana seseorang menunjukkan hal itu. Saya akan memperbarui jawaban saya untuk menjelaskan bagian yang terpisah.
paulmorriss
@ paul, bukankah maksud Anda URI di baris pertama? id=100bukan lokasi , itu indikator.
DisgruntledGoat
Saya pikir saya maksudkan URL. Dengan beberapa situs jika Anda mengubah id Anda mendapatkan "halaman" yang berbeda dalam bahasa-normal. Membaca definisi sumber daya di wikipedia Saya pikir halaman adalah contoh dari sumber daya.
paulmorriss
7

Ini bukan kasus bahwa URL yang Anda sebutkan terdiri dari bagian URL dan URN.

http://www.bernzilla.com/item.php?id=100 adalah URL dan URI.

Pada dasarnya URI adalah superset dari URL dan dari URN. Ada beberapa tumpang tindih antara URL dan URN juga.

URI mengidentifikasi sumber daya baik berdasarkan lokasi, atau nama, atau keduanya.

Jadi URL apa pun adalah URI, setiap URN adalah URI, tetapi tidak setiap URI adalah URL.

Keris
sumber