Pertanyaan Apa perbedaan antara URI, URL, dan URN?


Orang-orang membicarakannya URLs, URIs dan PASUseolah-olah mereka hal yang berbeda, tetapi mereka terlihat sama dengan mata telanjang.

Apa perbedaan dibedakan antara mereka?


3704
2017-10-06 21:26


asal


Jawaban:


Dari RFC 3986:

URI dapat diklasifikasikan lebih lanjut sebagai locator, nama, atau keduanya. Itu      istilah "Uniform Resource Locator" (URL) mengacu pada bagian dari URI      itu, selain mengidentifikasi sumber daya, menyediakan sarana      mencari sumber daya dengan menjelaskan mekanisme akses utamanya      (mis., "lokasi" jaringannya). Istilah "Nama Sumber Seragam"      (URN) telah digunakan secara historis untuk merujuk ke URI di bawah      Skema "guci" [RFC2141], yang harus tetap unik secara global      dan tetap ada bahkan ketika sumber daya berhenti ada atau menjadi      tidak tersedia, dan untuk URI lainnya dengan properti dari sebuah nama.

Jadi semua URL adalah URI (sebenarnya tidak cukup - lihat di bawah), dan semua URN adalah URI - tetapi URN dan URL berbeda, sehingga Anda tidak dapat mengatakan bahwa semua URI adalah URL.

EDIT: Sebelumnya saya berpikir bahwa semua URL adalah URI yang valid, tetapi sesuai komentar:

Tidak "semua URL adalah URI". Itu tergantung pada interpretasi RFC. Misalnya di Java parser URI tidak suka [ atau ] dan itu karena spek mengatakan "tidak boleh" dan bukan "tidak akan".

Sehingga air berlumpur lebih jauh, sayangnya.

Jika Anda belum membaca Jawaban Roger Pate, Saya menyarankan melakukannya juga.


1515
2017-10-06 21:29



URIs mengidentifikasi dan URLs cari; namun, pencari juga pengidentifikasi, jadi setiap URL juga merupakan URI, tetapi ada URI yang bukan URL.

Contoh

  • Roger Pate

Ini adalah nama saya, yang merupakan pengenal. Ini seperti URI, tetapi tidak dapat berupa URL, karena tidak memberi tahu Anda tentang lokasi saya atau cara menghubungi saya. Dalam hal ini juga terjadi untuk mengidentifikasi setidaknya 5 orang lain di Amerika Serikat saja.

  • 4914 West Bay Street, Nassau, Bahama

Ini adalah locator, yang merupakan pengenal untuk lokasi fisik tersebut. Ini seperti URL dan URI (karena semua URL adalah URI), dan juga mengidentifikasi saya secara tidak langsung sebagai "penduduk ..". Dalam hal ini secara unik mengidentifikasi saya, tetapi itu akan berubah jika saya mendapatkan teman sekamar.

Saya mengatakan "suka" karena contoh-contoh ini tidak mengikuti sintaks yang diperlukan.

Kebingungan populer

Dari Wikipedia:

Dalam komputasi, Uniform Resource Locator (URL) adalah bagian dari Uniform Resource Identifier (URI) yang menentukan di mana sumber daya yang teridentifikasi tersedia dan mekanisme untuk mengambilnya. Dalam penggunaan populer dan dalam banyak dokumen teknis dan diskusi verbal sering salah digunakan sebagai sinonim untuk URI, ... [Menekankan tambang]

Karena kebingungan umum ini, banyak produk dan dokumentasi salah menggunakan satu istilah alih-alih yang lain, menetapkan perbedaan mereka sendiri, atau menggunakannya secara sinonim.

URN

Nama saya, Roger Pate, bisa seperti PASU (Nama Sumber Seragam), kecuali mereka jauh lebih diatur dan dimaksudkan untuk menjadi unik kedua ruang dan waktu.

Karena saat ini saya membagikan nama ini dengan orang lain, itu tidak unik secara global dan tidak akan sesuai sebagai URN. Namun, bahkan jika tidak ada keluarga lain yang menggunakan nama ini, saya dinamai seperti kakek dari pihak ayah saya, jadi itu tetap tidak unik sepanjang waktu. Dan bahkan jika bahwa itu tidak terjadi, kemungkinan penamaan keturunan saya setelah saya membuat ini tidak cocok sebagai URN.

URN berbeda dari URL dalam batasan unik yang kaku ini, meskipun keduanya berbagi sintaks URI.


3524
2017-12-31 06:32



URI - Pengidentifikasi Sumber Daya Seragam

URI adalah standar untuk mengidentifikasi dokumen menggunakan serangkaian angka, huruf, dan simbol pendek. Mereka didefinisikan oleh RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax. URL, URN, dan URC semuanya jenis dari URI.

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:user@example.com
  • 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 diawali dengan protokol (http) dan biasanya berisi informasi seperti nama host jaringan (example.com) dan seringkali jalur dokumen (/foo/mypage.html). URL mungkin memiliki parameter kueri dan pengidentifikasi fragmen.

URN - Nama Sumber Daya Seragam

Mengidentifikasi sumber daya dengan nama yang unik dan terus-menerus, tetapi tidak selalu memberi tahu Anda cara menempatkannya di internet. Biasanya dimulai dengan awalan urn:  Sebagai contoh:

  • urn:isbn:0451450523 untuk mengidentifikasi buku berdasarkan nomor ISBN-nya.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 pengenal unik 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 oleh "resolver". Dokumen itu kemudian dapat diunduh dari URL.

URC - Uniform Resource Citation

Arahkan ke meta data tentang dokumen daripada ke dokumen itu sendiri. Contoh URC adalah salah satu yang mengarah ke kode sumber HTML dari sebuah halaman seperti: view-source:http://example.com/

URI Data

Daripada menempatkannya di internet, atau menamainya, data dapat ditempatkan langsung ke URI. Contohnya adalah data:,Hello%20World.


Pertanyaan yang Sering Diajukan

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

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

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

Bukannya saya tahu, tapi web browser modern memang mengimplementasikan skema URI data.

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 kaitannya dengan apakah ia 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 ia memiliki pengenal fragmen?

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

Apakah perbedaan antara URL dan URI ada kaitannya dengan karakter apa yang diizinkan?

Tidak. URL didefinisikan sebagai subset URI yang ketat. Jika parser memungkinkan karakter dalam URL tetapi tidak dalam URI, ada bug di parser. Spesifikasi akan sangat detail tentang karakter mana yang diizinkan di bagian mana URL dan URI. Beberapa karakter mungkin diizinkan hanya di beberapa bagian URL, tetapi karakter saja tidak ada perbedaan antara URL dan URI.

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

Iya nih. W3C menyadari bahwa ada banyak kebingungan tentang hal ini. Mereka mengeluarkan a Dokumen klarifikasi URI yang mengatakan bahwa sekarang OK untuk menggunakan URL istilah dan URI secara bergantian (berarti URI). Tidak lagi berguna untuk mengelompokkan URI ke jenis yang berbeda seperti URL, URN, dan URC.

Dapatkah URI menjadi URL dan URN?

Definisi URN sekarang lebih longgar dari apa yang saya nyatakan di atas. Itu RFC terbaru tentang URI mengatakan bahwa setiap URI sekarang dapat menjadi URN (terlepas dari apakah itu dimulai dengan urn:) selama itu memiliki "sifat-sifat sebuah nama." Yaitu: Ini secara global unik dan persisten bahkan ketika sumber daya berhenti ada atau menjadi tidak tersedia. Contoh: URI yang digunakan dalam HTML doctypes seperti http://www.w3.org/TR/html4/strict.dtd. URI itu akan terus menamai doctype transisi HTML4 bahkan jika halaman di situs web w3.org telah dihapus.


URI/URL Venn Diagram


474
2018-03-04 21:51



Kesimpulan: URI mengidentifikasi, URL mengidentifikasi dan menempatkan.

Pertimbangkan edisi spesifik dari drama Shakespeare Romeo dan Juliet, di mana Anda memiliki salinan digital di jaringan rumah Anda.

Anda dapat mengidentifikasi teks sebagai urn:isbn:0-486-27557-4.
Itu akan menjadi URI, tetapi lebih spesifik a PASU* karena itu menamai teks.

Anda juga bisa mengidentifikasi teks sebagai file://hostname/sharename/RomeoAndJuliet.pdf.
Itu juga akan menjadi URI, tetapi lebih khusus lagi URL karena itu menempatkan teks.

* Nama Sumber Seragam

(Perhatikan bahwa contoh saya diadaptasi dari Wikipedia)


233
2017-12-31 06:51



Ini adalah beberapa jawaban yang ditulis dengan sangat baik tetapi bertele-tele. Inilah perbedaannya sejauh CodeIgniter khawatir:

URL - http://example.com/some/page.html

URI - /situs/page.html

Sederhananya, URL adalah cara lengkap untuk mengidentifikasi sumber daya mana saja dan dapat memiliki protokol yang berbeda seperti FTP, HTTP, SCP, dll.

URI adalah sumber daya pada domain saat ini, sehingga memerlukan lebih sedikit informasi untuk ditemukan.

Dalam setiap contoh yang CodeIgniter menggunakan kata URL atau URI ini adalah perbedaan yang mereka bicarakan, meskipun dalam grand-skema web, itu tidak 100% benar.


124
2017-12-31 08:58



Sebuah tambahan kecil untuk jawaban yang sudah diposting, inilah diagram Venn untuk meringkas teori (dari indah Prateek Joshi penjelasan):

enter image description here

Dan contoh (juga dari situs web Prateek):

enter image description here


64
2017-10-16 17:46



Ini adalah salah satu topik yang paling membingungkan dan mungkin tidak relevan yang saya temui sebagai seorang profesional web.

Seperti yang saya pahami, URI adalah deskripsi tentang sesuatu, mengikuti format yang diterima, yang dapat menentukan baik atau nama unik (identifikasi) dari sesuatu dan lokasinya.

Ada dua subhimpunan dasar - URL, yang menentukan lokasi (terutama untuk peramban yang mencoba mencari halaman web) dan URN, yang menentukan nama unik dari sesuatu.

Saya cenderung menganggap URN sebagai mirip dengan GUIDs. Mereka hanyalah metodologi standar untuk memberikan nama-nama unik untuk berbagai hal. Seperti dalam deklarasi namespace yang menggunakan nama perusahaan - itu tidak seperti ada sumber daya yang duduk di server di suatu tempat untuk sesuai dengan baris teks - itu hanya secara unik mengidentifikasi sesuatu.

Saya juga cenderung untuk sepenuhnya menghindari istilah URI dan mendiskusikan hal-hal hanya dalam hal URL atau URN yang sesuai, karena itu menyebabkan begitu banyak kebingungan. Pertanyaan yang harus kita benar-benar mencoba menjawab untuk orang bukanlah semantiknya, tetapi bagaimana mengidentifikasi ketika menghadapi istilah apakah ada perbedaan praktis di dalamnya yang akan mengubah pendekatan ke situasi pemrograman. Misalnya, jika seseorang mengoreksi saya dalam percakapan dan berkata, "oh, itu bukan URL itu URI" Saya tahu mereka penuh dengan itu. Jika seseorang mengatakan "kami menggunakan URN untuk menentukan sumber daya" Saya lebih mungkin untuk memahami bahwa kami hanya menamakannya secara unik, bukan menempatkannya di server.

Jika saya jauh dari basis - tolong beritahu saya!


52
2017-12-01 13:07



Pertama-tama, buat pikiran Anda keluar dari kebingungan dan anggap sederhana dan Anda akan mengerti.

URI => Uniform Resource Identifier Mengidentifikasi alamat lengkap dari lokasi sumber daya i-e, nama atau keduanya.

URL => Uniform Resource Locator Mengidentifikasi lokasi sumber daya.

URN => Nama Sumber Seragam Mengidentifikasi nama sumber daya

Contoh

Kami memiliki alamat https://www.google.com/folder/page.html dimana,

URI (Uniform Resource Identifier) ​​=> https://www.google.com/folder/page.html

URL (Uniform Resource Locator) => https://www.google.com/

URN (Uniform Resource Name) => /folder/page.html

URI => (URL + URN) atau hanya URL atau URN saja


44
2017-07-21 17:50



URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL adalah bagian dari URI (yang juga mengandung URN).

Pada dasarnya, URI adalah pengenal umum, di mana URL menentukan lokasi dan URN menentukan nama.


42
2017-10-06 21:30