Orang-orang berbicara tentang URL , URI , dan URN seolah-olah itu adalah hal yang berbeda, tetapi mereka terlihat sama dengan mata telanjang.
Apa perbedaan yang bisa dibedakan di antara mereka?
( URIs ( URLs ) )
Orang-orang berbicara tentang URL , URI , dan URN seolah-olah itu adalah hal yang berbeda, tetapi mereka terlihat sama dengan mata telanjang.
Apa perbedaan yang bisa dibedakan di antara mereka?
( URIs ( URLs ) )
Jawaban:
Dari RFC 3986 :
URI dapat diklasifikasikan lebih lanjut sebagai pelacak, nama, atau keduanya. Istilah "Uniform Resource Locator" (URL) mengacu pada subset dari URI yang, selain mengidentifikasi sumber daya, menyediakan cara untuk menemukan sumber daya dengan menjelaskan mekanisme akses utamanya (misalnya, "lokasi" jaringannya). Istilah "Uniform Resource Name" (URN) telah digunakan secara historis untuk merujuk kedua URI di bawah skema "guci" [RFC2141] , yang diperlukan untuk tetap unik secara global dan persisten bahkan ketika sumber daya tidak lagi ada atau menjadi tidak tersedia, dan ke URI lain dengan properti nama.
Jadi semua URL adalah URI (sebenarnya tidak cukup - lihat di bawah), dan semua URN adalah URI - tetapi URN dan URL berbeda, jadi Anda tidak bisa mengatakan bahwa semua URI adalah URL.
EDIT: Saya sebelumnya berpikir bahwa semua URL adalah URI yang valid, tetapi sesuai komentar:
Tidak "semua URL adalah URI". Itu tergantung pada interpretasi RFC. Sebagai contoh di Jawa parser URI tidak suka
[
atau]
dan itu karena spesifikasi mengatakan "tidak boleh" dan tidak "tidak boleh".
Sehingga membuat air semakin berlumpur, sayangnya.
Jika Anda belum membaca jawaban Roger Pate , saya sarankan Anda juga melakukannya.
[
atau ]
dan itu karena spesifikasi mengatakan "tidak boleh" dan tidak "tidak boleh".
java.net.URI
doc sendiri mengatakan "setiap URL adalah URI, abstrak berbicara, tapi tidak setiap URI adalah URL". Dan java.net.URL
apakah hal-hal aneh seperti memeriksa kesetaraan URL dengan menyelesaikan nama host ke alamat IP (yang tampaknya bertentangan dengan RFC 3986 detik 6 di tempat pertama, dan merusak host virtual). Saya pikir ini hanya berarti Java Standard Library memiliki beberapa perilaku kelas yang tidak konsisten.
URI s mengidentifikasi dan URL s menemukan ; namun, pelacak juga merupakan pengidentifikasi , sehingga setiap URL juga merupakan URI, tetapi ada URI yang bukan URL.
Ini nama saya, yang merupakan pengidentifikasi. Itu seperti URI, tetapi tidak bisa menjadi 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 AS saja.
Ini adalah pelacak, yang merupakan pengidentifikasi untuk lokasi fisik itu. 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.
Dari Wikipedia :
Dalam komputasi, Uniform Resource Locator (URL) adalah subset dari Uniform Resource Identifier (URI) yang menentukan di mana sumber daya yang diidentifikasi tersedia dan mekanisme untuk mengambilnya. Dalam penggunaan populer dan dalam banyak dokumen teknis dan diskusi verbal sering salah digunakan sebagai sinonim untuk URI , ... [penekanan milik saya]
Karena kebingungan umum ini, banyak produk dan dokumentasi salah menggunakan satu istilah, bukan yang lain, menetapkan perbedaan mereka sendiri, atau menggunakannya secara sinonim.
Nama saya, Roger Pate, bisa seperti URN (Uniform Resource Name), kecuali yang jauh lebih diatur dan dimaksudkan untuk menjadi unik di kedua ruang dan waktu.
Karena saya saat ini 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 kakek dari pihak ayah saya, jadi itu tidak akan unik sepanjang waktu. Dan bahkan jika itu tidak terjadi, kemungkinan penamaan keturunan saya setelah saya membuat ini cocok sebagai URN a.
URN berbeda dari URL dalam batasan keunikan yang kaku ini, meskipun keduanya berbagi sintaksis URI.
URNs are different from URLs in this rigid uniqueness constraint
Apakah ini berarti bahwa URL tidak secara unik mengidentifikasi lokasi?
URI adalah standar untuk mengidentifikasi dokumen menggunakan serangkaian pendek angka, huruf, dan simbol. Mereka didefinisikan oleh RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax . URL, URN, dan URC adalah semua jenis URI.
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 dimulai 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.
Identifikasi sumber daya dengan nama yang unik dan persisten, tetapi tidak selalu memberi tahu Anda bagaimana cara menemukannya di internet. 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 globalurn: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.
Poin ke meta data tentang dokumen daripada ke dokumen itu sendiri. Contoh URC adalah yang menunjuk ke kode sumber HTML halaman seperti:view-source:http://example.com/
Daripada menempatkannya di internet, atau menamainya, data dapat ditempatkan langsung ke dalam URI. Contohnya adalah data:,Hello%20World
.
W3 spec untuk HTML mengatakan bahwa href
tag anchor dapat berisi URI, bukan hanya URL. Anda harus bisa memasukkan URN seperti <a href="urn:isbn:0451450523">
. Browser Anda kemudian akan menyelesaikan URN ke URL dan mengunduh buku untuk Anda.
Bukan yang saya tahu, tetapi browser web modern menerapkan skema data URI.
Tidak. URL relatif dan absolut adalah URL (dan URI.)
Tidak. Kedua URL dengan dan tanpa parameter kueri adalah URL (dan URI.)
Tidak. Kedua URL dengan dan tanpa pengidentifikasi fragmen adalah URL (dan URI.)
Tidak. URL didefinisikan sebagai subset ketat dari URI. Jika parser mengizinkan karakter dalam URL tetapi tidak dalam URI, ada bug di parser. Spesifikasi menjadi sangat detail tentang karakter mana yang diizinkan di bagian URL dan URI mana. Beberapa karakter mungkin hanya diperbolehkan di beberapa bagian URL, tetapi karakter saja tidak berbeda antara URL dan URI.
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 berguna untuk mengelompokkan URI secara ketat ke berbagai jenis seperti URL, URN, dan URC.
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 ada lagi 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 doctype transisi HTML4 bahkan jika halaman di situs web w3.org dihapus.
file://
awalan di atasnya. Meskipun browser umumnya menangani jalur file yang diformat non-URL. Mozilla menerbitkan kotak uji untuk URL file .
mailto:user@example.com
sebagai URL tetapi jawaban lain di bawah mengatakan itu adalah URN? Mana yang benar Apakah itu URN dan URL?
Singkatnya: URI mengidentifikasi, URL mengidentifikasi dan menemukan.
Pertimbangkan edisi khusus drama Shakespeare, Romeo and Juliet , di mana Anda memiliki salinan digitalnya di jaringan rumah Anda.
Anda dapat mengidentifikasi teks sebagai urn:isbn:0-486-27557-4
.
Itu akan menjadi URI, tetapi lebih khusus URN * karena nama teks .
Anda juga dapat mengidentifikasi teks sebagai file://hostname/sharename/RomeoAndJuliet.pdf
.
Itu juga akan menjadi URI, tetapi lebih khusus URL karena menempatkan teks .
* Nama Sumber Daya Seragam
(Perhatikan bahwa contoh saya diadaptasi dari Wikipedia )
ISBN 0486275574
juga memberi nama teks dan dengan demikian memenuhi syarat sebagai URN. Saya memilih format yang saya yakin akan lebih akrab bagi pembaca.
Ini adalah beberapa jawaban yang ditulis dengan sangat baik tetapi panjang lebar. Berikut ini perbedaan sejauh menyangkut CodeIgniter :
URL - http://example.com/some/page.html
URI - /some/page.html
Sederhananya, URL adalah cara lengkap untuk mengidentifikasi sumber daya apa pun di 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 URL kata atau URI ini adalah perbedaan yang mereka bicarakan, meskipun dalam skema besar web, itu tidak 100% benar.
/some/page.html
bukan URI. Ini adalah "relatif-ref", yang merupakan semacam "referensi-URI". Dikombinasikan dengan konteks dasar URI, ini dapat diselesaikan ke URI, tetapi bukan URI itu sendiri. Lihat Bagian 4.1 dari RFC 3986 . CodeIgniter mungkin menggunakan istilah yang salah dan itu harus dipanggil; Q (seperti yang saat ini diedit) tidak dibingkai sebagai khusus CodeIgniter.
Pertama-tama, keluarkan pikiran Anda dari kebingungan dan sesederhana itu dan Anda akan mengerti.
URI => Uniform Resource Identifier Mengidentifikasi alamat lengkap sumber daya yaitu lokasi, nama, atau keduanya.
URL => Uniform Resource Locator Mengidentifikasi lokasi sumber daya.
URN => Nama Sumber Daya Seragam Mengidentifikasi nama sumber daya
Contoh
Kami memiliki alamat https://www.google.com/folder/page.html di mana,
URI (Uniform Resource Identifier) => https://www.google.com/folder/page.html
URL (Uniform Resource Locator) => https://www.google.com/
URN (Nama Sumber Daya Seragam) => /folder/page.html
URI => (URL + URN) atau hanya URL atau hanya URN
Tambahan kecil untuk jawaban yang sudah diposting, inilah diagram Venn untuk merangkum teorinya (dari penjelasan Prateek Joshi yang indah ):
Dan sebuah contoh (juga dari situs web Prateek):
#posts
pengidentifikasi fragmen dapat menjadi bagian dari URL
Ini adalah salah satu topik yang paling membingungkan dan mungkin tidak relevan yang saya temui sebagai profesional web.
Seperti yang saya pahami, URI adalah deskripsi dari sesuatu, mengikuti format yang diterima, yang dapat mendefinisikan keduanya atau nama unik (identifikasi) dari sesuatu dan lokasinya.
Ada dua himpunan bagian dasar - URL, yang menentukan lokasi (terutama untuk peramban yang mencoba mencari laman web) dan URN, yang menentukan nama unik sesuatu.
Saya cenderung menganggap URN mirip dengan GUID. Mereka hanyalah metodologi standar untuk memberikan nama unik untuk berbagai hal. Seperti dalam namespace declarative yang menggunakan nama perusahaan - tidak seperti ada sumber daya yang duduk di server di suatu tempat untuk berhubungan dengan baris teks - itu hanya mengidentifikasi sesuatu secara unik.
Saya juga cenderung sepenuhnya menghindari istilah URI dan membahas hal-hal hanya dalam hal URL atau URN yang sesuai, karena hal itu menyebabkan banyak kebingungan. Pertanyaan yang harus benar-benar kita coba jawab untuk orang-orang bukanlah semantik, tetapi bagaimana mengidentifikasi ketika menemukan istilah-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 adalah URI" Saya tahu mereka penuh dengan itu. Jika seseorang mengatakan "kami menggunakan URN untuk menentukan sumber daya" Saya lebih cenderung memahami bahwa kami hanya menamainya secara unik, bukan menempatkannya di server.
Jika saya jauh dari basis - beri tahu saya!
redirect_url
sebagai ganti redirect_uri
, apakah ada yang benar-benar peduli?
Identity = Nama dengan Lokasi
Setiap URL ( U niform R eSource L ocator) adalah URI ( U niform R eSource I dentifier), abstrak berbicara, tetapi setiap URI tidak URL. Ada subkategori lain URI adalah URN ( U niform R eSource N ame), yang merupakan sumber daya yang bernama tetapi tidak menentukan bagaimana untuk menemukan mereka, seperti mailto, berita, ISBN adalah URI. Sumber
PASU:
urn:[namespace identifier]:[namespace specific string]
arn:partition:service:region:account-id:resource
URL:
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
Analogi:
Untuk menjangkau seseorang: Berkendara (protokol lainnya SMS, email, telepon), Alamat (nama host-nomor telepon lain, emailid) dan nama orang (nama objek dengan jalur relatif).
URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
URL adalah bagian dari URI (yang juga mengandung URN).
Pada dasarnya, URI adalah pengidentifikasi umum, tempat URL menentukan lokasi dan URN menentukan nama.
[
dan ]
bukan URI.
Contoh lain yang ingin saya gunakan ketika berpikir tentang URI adalah atribut xmlns dari dokumen XML:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
Dalam hal ini com.mycompany.mynode akan menjadi URI yang secara unik mengidentifikasi namespace "myPrefix" untuk semua elemen yang menggunakannya dalam dokumen XML saya. Ini BUKAN URL karena ini hanya digunakan untuk mengidentifikasi, bukan untuk menemukan sesuatu sendiri.
Karena kesulitan untuk membedakan dengan jelas antara URI dan URL, sejauh yang saya ingat W3C tidak membuat perbedaan lagi antara URI dan URL ( http://www.w3.org/Addressing/ ).
Mereka adalah hal yang sama . URI adalah generalisasi URL. Awalnya, URI direncanakan untuk dibagi menjadi URL (alamat) dan URN (nama) tetapi kemudian ada sedikit perbedaan antara URL dan URI dan http URI digunakan sebagai ruang nama meskipun mereka tidak benar-benar menemukan sumber daya apa pun.
URI, URL, URN
Seperti yang ditunjukkan gambar di atas, ada tiga komponen berbeda yang berperan di sini. Biasanya lebih baik pergi ke sumber ketika membahas hal-hal seperti ini, jadi inilah kutipan dari Tim Berners-Lee, et. Al. dalam RFC 3986: Uniform Resource Identifier (URI): Sintaks Generik:
Uniform Resource Identifier (URI) adalah urutan karakter yang kompak yang mengidentifikasi sumber daya abstrak atau fisik.
URI dapat diklasifikasikan lebih lanjut sebagai pelacak, nama, atau keduanya. Istilah "Uniform Resource Locator" (URL) mengacu pada subset dari URI yang, selain mengidentifikasi sumber daya, menyediakan cara untuk menemukan sumber daya dengan menjelaskan mekanisme akses utamanya (misalnya, "lokasi" jaringannya).
URI adalah jenis kelas super URL dan URN. Wikipedia memiliki artikel bagus tentang mereka dengan tautan ke set RFC yang tepat.
Wikipedia akan memberikan semua informasi yang Anda butuhkan di sini. Mengutip dari http://en.wikipedia.org/wiki/URI :
URL adalah URI yang, selain mengidentifikasi sumber daya, menyediakan cara untuk bertindak atas atau memperoleh representasi sumber daya dengan menjelaskan mekanisme akses utama atau "lokasi" jaringannya.
URL
URL adalah spesialisasi URI yang mendefinisikan lokasi jaringan sumber daya tertentu. Tidak seperti URN, URL menentukan bagaimana sumber daya dapat diperoleh. Kami menggunakan URL setiap hari dalam bentuk http://example.com
dll. Tetapi URL tidak harus berupa URL HTTP, bisa juga ftp://example.com
dll.
URI
URI mengidentifikasi sumber daya baik berdasarkan lokasi, atau nama, atau keduanya. Lebih sering daripada tidak, kebanyakan dari kita menggunakan URI yang mendefinisikan lokasi ke sumber daya. Fakta bahwa URI dapat mengidentifikasi sumber daya dengan nama dan lokasi telah menyebabkan banyak kebingungan menurut saya. URI memiliki dua spesialisasi yang dikenal sebagai URL dan URN.
Perbedaan antara URL dan URI
URI adalah pengidentifikasi untuk beberapa sumber daya, tetapi URL memberi Anda informasi spesifik untuk mendapatkan sumber daya itu. URI adalah URL dan seperti yang ditunjukkan oleh seorang komentator, sekarang dianggap tidak benar untuk menggunakan URL saat menjelaskan aplikasi. Secara umum, jika URL menggambarkan lokasi dan nama sumber daya, istilah yang digunakan adalah URI. Karena ini adalah kasus yang biasa kita jumpai setiap hari, URI adalah istilah yang tepat.
Sesuai RFC 3986 , URI terdiri dari bagian-bagian berikut:
scheme://authority/path?query
URI menggambarkan protokol untuk mengakses sumber daya ( jalur ) atau aplikasi ( permintaan ) pada server ( otoritas ).
Semua URL adalah URI, dan semua URN adalah URI, tetapi semua URI bukan URL.
Silakan merujuk untuk detail lebih lanjut:
URI mengidentifikasi sumber daya baik berdasarkan lokasi, atau nama, atau keduanya. Lebih sering daripada tidak, kebanyakan dari kita menggunakan URI yang mendefinisikan lokasi ke sumber daya. Fakta bahwa URI dapat mengidentifikasi sumber daya dengan nama dan lokasi telah menyebabkan banyak kebingungan menurut saya. URI memiliki dua spesialisasi yang dikenal sebagai URL dan URN.
URL adalah spesialisasi URI yang mendefinisikan lokasi jaringan sumber daya tertentu. Tidak seperti URN, URL menentukan bagaimana sumber daya dapat diperoleh. Kami menggunakan URL setiap hari dalam bentuk http://stackoverflow.com , dll. Tetapi URL tidak harus berupa URL HTTP, bisa juga ftp://example.com
, dll.
Meskipun istilah URI dan URL didefinisikan secara ketat, banyak yang menggunakan istilah itu untuk hal-hal lain daripada yang didefinisikan.
Mari kita ambil Apache sebagai contoh. Jika http://example.com/foo diminta dari server Apache, Anda akan menetapkan variabel lingkungan berikut:
REDIRECT_URL
: /foo
REQUEST_URI
: /foo
Dengan mod_rewrite diaktifkan, Anda juga akan memiliki variabel-variabel ini:
REDIRECT_SCRIPT_URL
: /foo
REDIRECT_SCRIPT_URI
: http://example.com/foo
SCRIPT_URL
: /foo
SCRIPT_URI
: http://example.com/foo
Ini mungkin menjadi alasan untuk beberapa kebingungan.
Lihat dokumen ini . Secara khusus,
URL adalah jenis URI yang mengidentifikasi sumber daya melalui representasi mekanisme akses utama (misalnya, "lokasi" jaringannya), daripada oleh beberapa atribut lain yang mungkin dimilikinya.
Ini bukan istilah yang sangat jelas.
Setelah membaca posting, saya menemukan beberapa komentar yang sangat relevan. Singkatnya, kebingungan antara URL dan definisi URI didasarkan pada bagian di mana definisi tergantung pada mana dan juga penggunaan informal kata URI dalam pengembangan perangkat lunak.
Menurut definisi, URL adalah himpunan bagian dari URI [RFC2396]. URI berisi URN dan URL. Baik URI dan URL masing-masing memiliki sintaksis khusus masing-masing yang memberi mereka status sebagai URI atau URL. URN adalah untuk mengidentifikasi sumber daya secara unik sementara URL untuk menemukan sumber daya. Perhatikan bahwa sumber daya dapat memiliki lebih dari satu URL tetapi hanya URN tunggal. [RFC2611]
Sebagai pengembang dan pemrogram web kami hampir selalu akan peduli dengan URL dan karenanya URI. Sekarang URL didefinisikan secara khusus untuk memiliki semua skema bagian: skema-bagian-spesifik, seperti misalnya https://stackoverflow.com/questions . Ini adalah URL dan juga URI. Sekarang pertimbangkan tautan relatif yang tertanam di halaman seperti ../index.html. Ini bukan lagi URL menurut definisi. Ini masih apa yang disebut sebagai "referensi-URI" [RFC2396].
Saya percaya bahwa ketika kata URI digunakan untuk merujuk pada jalur relatif, "referensi-URI" sebenarnya adalah apa yang sedang dipikirkan. Jadi secara informal, sistem perangkat lunak menggunakan URI untuk merujuk pada jalur relatif dan URL untuk alamat absolut. Jadi dalam hal ini, jalur relatif bukan lagi URL tetapi masih URI.
Ini penyederhanaan saya:
URN: nama sumber daya unik, yaitu "apa" (misalnya, guci: issn: 1234-5678). Ini dimaksudkan untuk menjadi unik .. karena tidak ada dua dokumen yang berbeda dapat memiliki guci yang sama. Agak seperti "uuid"
URL: "di mana" untuk menemukannya (mis . Https://google.com/pub?issnid=1234-5678 .. atau ftp://somesite.com/doc8.pdf )
URI: bisa berupa URN atau URL. Definisi fuzzy ini berkat RFC 3986 yang diproduksi oleh W3C dan IETF.
Definisi URI telah berubah selama bertahun-tahun, sehingga masuk akal bagi kebanyakan orang untuk bingung. Namun, Anda sekarang dapat mengambil pelipur lara pada kenyataan bahwa Anda dapat merujuk ke http://somesite.com/something baik sebagai URL atau URI ... dan Anda akan benar juga (setidaknya untuk saat itu tetap saja .. .)
Saya bertanya-tanya tentang hal yang sama dan saya telah menemukan ini: http://docs.kohanaphp.com/helpers/url .
Anda dapat melihat contoh yang jelas menggunakan url::current()
metode ini. Jika Anda memiliki URL ini : http://example.com/kohana/index.php/welcome/home.html?query=string
kemudian menggunakan url:current()
memberi Anda URI yang, menurut dokumentasi, adalah: welcome / home
URI muncul dari kebutuhan untuk mengidentifikasi sumber daya di Web, dan sumber daya Internet lainnya seperti kotak surat elektronik dengan cara yang seragam dan koheren. Jadi, seseorang dapat memperkenalkan jenis widget baru: URI untuk mengidentifikasi sumber daya widget atau menggunakan tel: URI untuk memiliki tautan web yang menyebabkan panggilan telepon dilakukan saat dipanggil.
Beberapa URI menyediakan informasi untuk menemukan sumber daya (seperti nama host DNS dan jalur di mesin itu), sementara beberapa digunakan sebagai nama sumber daya murni. The URL dicadangkan untuk pengidentifikasi yang adalah pencari sumber daya , termasuk 'http' URL seperti http://stackoverflow.com , yang mengidentifikasi halaman web di jalan yang diberikan pada host. Contoh lain adalah URL 'mailto', seperti mailto: fred@mail.org , yang mengidentifikasi kotak surat di alamat yang diberikan.
URN adalah URI yang digunakan sebagai nama sumber daya murni daripada pelacak. Misalnya, URI: pertengahan: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com adalah URN yang mengidentifikasi pesan email yang berisi pesan itu di bidang 'Message-Id'. URI berfungsi untuk membedakan pesan itu dari pesan email lainnya. Tapi itu sendiri tidak memberikan alamat pesan di toko mana pun.
Untuk menjawab ini saya akan mengandalkan jawaban yang saya modifikasi untuk pertanyaan lain . Contoh yang baik dari URI adalah bagaimana Anda mengidentifikasi sumber daya Amazon S3. Mari kita ambil:
s3://www-example-com/index.html
[ara. 1]
yang saya buat sebagai salinan cache
http://www.example.com/index.html
[ara. 2]
di pusat data S3-US-West-2 Amazon .
Bahkan jika StackOverflow akan memungkinkan saya untuk hyperlink ke skema s3://
protokol , itu tidak ada gunanya bagi Anda untuk menemukan sumber daya. Karena Mengidentifikasi suatu Sumber Daya , ara. 1 adalah URI yang valid. Ini juga merupakan URN yang valid, karena Amazon mensyaratkan bahwa bucket (istilah mereka untuk authority
porsi URI) unik di seluruh pusat data. Ini membantu dalam menemukan itu, tetapi tidak menunjukkan pusat data. Karena itu tidak berfungsi sebagai URL.
Jadi, bagaimana perbedaan URI, URL, dan URN dalam hal ini?
CATATAN: RFC 3986 mendefinisikan URI sebagaischeme://authority/path?query#fragment
Mudah dijelaskan:
Mari kita asumsikan yang berikut ini
URI adalah Nama Anda
URL adalah alamat Anda dengan nama Anda untuk berkomunikasi dengan Anda.
nama saya Loyola
Loyola adalah URI
alamat saya adalah TN, Chennai 600001.
TN, Chennai 600 001, Loyola adalah URL
Semoga kamu mengerti,
Sekarang mari kita lihat contoh yang tepat
http://www.google.com/fistpage.html
di atas Anda dapat berkomunikasi dengan halaman yang disebut firstpage.html ( URI ) menggunakan http://www.google.com/fistpage.html ( URL ) berikut.
Karenanya URI adalah subset dari URL tetapi tidak sebaliknya.
Uniform Resource Identifier (URI) adalah serangkaian karakter yang mengidentifikasi Sumber Daya Internet.
URI yang paling umum adalah Uniform Resource Locator (URL) yang mengidentifikasi alamat domain Internet. Jenis lain, yang tidak terlalu umum dari URI adalah Nama Sumber Daya Universal (URN).
Saya menemukan:
Pengidentifikasi sumber daya yang seragam (URI) mewakili gambaran besar. Anda dapat membagi URI / URI dapat diklasifikasikan sebagai pelacak (uniform resource locators- URL), atau sebagai nama (uniform resource name-URN), atau keduanya. Jadi pada dasarnya, fungsi URN seperti nama seseorang dan URL menggambarkan alamat orang itu. Singkat cerita, sebuah URN mendefinisikan identitas suatu barang, sementara URL menyediakan mendefinisikan metode untuk menemukannya, akhirnya merangkum kedua konsep ini adalah URI
Ringkasan imo (teknis) terbaik adalah yang ini
IRI, URI, URL, URN, dan perbedaannya dari Jan Martin Keil:
Setiap orang yang berurusan dengan Web Semantik berulang kali menemukan istilah IRI , URI , URL , dan URN . Namun demikian, saya sering mengamati bahwa ada beberapa kebingungan tentang arti tepatnya. Dan, tentu saja, orang lain juga memperhatikan hal itu (lihat misalnya RFC3305 atau cari di Google). Sejujurnya, saya bahkan bingung pada awalnya. Namun sebenarnya masalahnya tidak serumit itu. Mari kita lihat definisi dari istilah yang disebutkan untuk melihat perbedaannya:
Sebuah Identifier Uniform Resource adalah urutan kompak karakter yang mengidentifikasi sumber daya abstrak atau fisik. Set karakter terbatas untuk US-ASCII tidak termasuk beberapa karakter yang dipesan. Karakter di luar set karakter yang diizinkan dapat direpresentasikan menggunakan Percent-Encoding. URI dapat digunakan sebagai pencari lokasi, nama, atau keduanya. Jika URI adalah pelacak, itu menggambarkan mekanisme akses primer sumber daya. Jika URI adalah nama, itu mengidentifikasi sumber daya dengan memberinya nama yang unik. Spesifikasi persis sintaks dan semantik URI tergantung pada Skema yang digunakan yang ditentukan oleh karakter sebelum titik dua pertama. [RFC3986]
Sebuah Uniform Resource Name adalah URI dalam skema guci dimaksudkan untuk melayani sebagai terus-menerus, identifier sumber daya, lokasi-independen. Secara historis, istilah ini juga merujuk ke URI mana pun. [RFC3986] URN terdiri dari Namespace Identifier (NID) dan Namespace Specific String (NSS): urn :: Sintaks dan semantik NSS spesifik untuk setiap NID. Selain NID terdaftar, ada beberapa NID lagi, yang tidak melalui proses registrasi resmi. [RFC2141]
Sebuah Uniform Resource Locator adalah URI yang, selain mengidentifikasi sumber daya, menyediakan sarana mencari sumber daya dengan menjelaskan mekanisme akses utama [RFC3986]. Karena tidak ada definisi yang pasti dari URL melalui serangkaian Skema, "URL adalah konsep yang berguna tetapi informal", biasanya merujuk pada subset URI yang tidak mengandung URN [RFC3305].
Sebuah internasionalisasi Resource Identifier didefinisikan sama dengan URI, tetapi karakter set diperluas ke Universal Kode Character Set. Oleh karena itu, dapat berisi karakter Latin dan non Latin kecuali karakter yang dipesan. Alih-alih memperluas definisi URI, istilah IRI diperkenalkan untuk memungkinkan perbedaan yang jelas dan menghindari ketidakcocokan. IRI dimaksudkan untuk menggantikan URI dalam mengidentifikasi sumber daya dalam situasi di mana Set Karakter Universal Code didukung. Menurut definisi, setiap URI adalah IRI. Selain itu, ada pemetaan suryektif yang ditetapkan dari IRI ke URI: Setiap IRI dapat dipetakan ke tepat satu URI, tetapi IRI yang berbeda mungkin memetakan ke URI yang sama. Oleh karena itu, konversi kembali dari URI ke IRI mungkin tidak menghasilkan IRI asli. [RFC3987]
IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)
RDF secara eksplisit memungkinkan untuk menggunakan IRI untuk memberi nama entitas [RFC3987]. Ini berarti bahwa kita dapat menggunakan hampir setiap karakter dalam nama entitas. Di sisi lain, kita sering harus berurusan dengan perangkat lunak keadaan awal. Dengan demikian, tidak mungkin mengalami masalah menggunakan karakter non ASCII. Karena itu, saya menyarankan untuk menghindari nama-nama non-URI untuk entitas dan merekomendasikan untuk menggunakan http URI [LINKED-DATA]. Singkatnya: hanya gunakan URL untuk memberi nama entitas Anda. Tentu saja, kita bisa merujuk ke entitas yang ada yang dinamai oleh URN. Namun, kita harus menghindari untuk membuat pengidentifikasi semacam ini.