Uniform Resource Identifier

Uniform Resource Identifier

Dalam komputer, satu Uniform Resource Identifier (URI) adalah sebuah string karakter yang digunakan untuk mengidentifikasi nama atau sumber di Internet. Memungkinkan identifikasi seperti interaksi dengan representasi sumber daya melalui jaringan (biasanya di World Wide Web) dengan menggunakan protokol tertentu. Skema yang menetapkan sintaks beton dan terkait protokol mendefinisikan masing-masing URI.


Hubungan ke URL dan URN



Diagram Venn skema URI kategori. Skema pada URL (pelacak) dan URN (nama) bentuk kategori subset dari URI, dan juga (biasanya) menguraikan set.
Secara teknis URL dan URN ID berfungsi sebagai sumber daya, namun tidak dapat tepat mengkategorikan banyak skema sebagai salah satu atau yang lain: kami bisa memperlakukan semua URI sebagai nama, dan beberapa aspek mewujudkan skema kedua kategori - atau keduanya.

Ilmuwan komputer dapat mengklasifikasikan sebuah URI sebagai pelacak (URL), atau nama (URN), atau keduanya. A Uniform Resource Name (URN) fungsi seperti nama seseorang, sementara Uniform Resource Locator (URL) menyerupai orang jalan-address. Dengan kata lain: yang URN mendefinisikan item identitas, sementara URL yang menyediakan metode untuk menemukannya.
Sistem ISBN untuk buku-buku identifikasi unik menyediakan contoh penggunaan guci. ISBN 0486275574 (urn: isbn :0-486-27557-4) mengutip jelas edisi khusus drama Shakespeare Romeo dan Juliet. Dalam rangka untuk mendapatkan akses ke obyek ini dan membaca buku, orang akan memerlukan lokasi: alamat URL. URL tipikal buku ini pada sebuah unix-sistem operasi mirip akan menjadi path file seperti file: / / / home / username / RomeoAndJuliet.pdf, mengidentifikasi buku elektronik yang tersimpan dalam sebuah file di harddisk lokal. Jadi guci dan URL memiliki tujuan saling melengkapi.

Teknis view

URL adalah URI yang, di samping untuk mengidentifikasi sumber daya, menyediakan sarana untuk bertindak atas atau mendapatkan sebuah representasi sumber daya dengan menjelaskan akses utamanya-mekanisme atau jaringan "lokasi". Sebagai contoh, URL http://www.wikipedia.org/ mengidentifikasi sumber daya (Wikipedia's home page) dan menyiratkan bahwa representasi dari sumber daya (seperti halaman kode HTML saat ini, sebagai karakter dikodekan) dapat diperoleh melalui HTTP dari host dengan nama jaringan www.wikipedia.org. A Uniform Resource Name (URN) adalah URI yang mengidentifikasi sumber daya namanya dalam namespace tertentu. Satu dapat menggunakan URN untuk berbicara tentang sumber daya tanpa menyiratkan lokasinya atau bagaimana untuk mengaksesnya. Sebagai contoh, URN urn: isbn :0-395-36341-1 adalah URI yang menentukan sistem pengenal, yaitu International Standard Book Number (ISBN), serta referensi yang unik dalam sistem itu dan memungkinkan seseorang untuk berbicara tentang buku, tetapi tidak menunjukkan di mana dan bagaimana untuk memperoleh salinan yang sebenarnya itu.
Publikasi teknis, terutama standar yang dihasilkan oleh IETF dan W3C, biasanya tidak lagi [kapan?] Menggunakan istilah URL, seperti kebutuhan untuk membedakan antara URL dan URI jarang muncul. [1] Namun, dalam konteks non-teknis dan di perangkat lunak untuk World Wide Web, istilah URL masih tetap digunakan secara luas. Selain itu, istilah alamat web (yang tidak memiliki definisi resmi) sering terjadi pada publikasi non-teknis sebagai sinonim untuk URL atau URI, meskipun pada umumnya mengacu pada "http" dan "https" URL-skema.

RFC 3.305

Sebagian besar diskusi ini berasal dari RFC3305, berjudul "Laporan dari W3C/IETF Bersama Perencanaan URI Interest Group: Uniform Resource Identifier (URI), URL, dan Uniform Resource Nama (guci): Klarifikasi dan Rekomendasi". RFC ini menguraikan hasil kerja bersama kelompok kerja W3C/IETF didirikan secara khusus untuk menormalkan memegang pandangan yang berbeda dalam IETF dan W3C atas hubungan antara berbagai "UR *" istilah dan standar. Meskipun tidak diterbitkan sebagai standar penuh, baik oleh organisasi, itu telah menjadi dasar bagi pemahaman umum di atas dan telah menginformasikan banyak standar sejak itu.

Sintaks

URI sintaks yang terdiri dari skema URI-nama (seperti "http", "ftp", "mailto" atau "file") diikuti oleh karakter titik dua, dan kemudian oleh sebuah skema-bagian tertentu. Spesifikasi yang mengatur skema menentukan sintaks dan semantik dari skema-bagian tertentu, meskipun URI sintaks tidak memaksa semua skema untuk mengikuti sintaks tertentu yang generik, antara lain, cadangan karakter tertentu untuk tujuan khusus (tanpa selalu mengidentifikasi tujuan). URI sintaks juga memberlakukan pembatasan pada skema-bagian tertentu, dalam rangka untuk, misalnya, memberikan suatu tingkat konsistensi ketika bagian memiliki struktur hirarkis. Persen-encoding, yang sering disalahpahami [oleh siapa?] Aspek URI sintaks, dapat menambahkan informasi tambahan ke URI.

Sejarah

Penamaan, berbicara, dan mengidentifikasi sumber daya

URI dan URL memiliki sejarah bersama. Pada tahun 1990, Tim Berners-Lee's proposal untuk HyperText [2] secara implisit memperkenalkan ide URL sebagai string pendek mewakili sumber daya yang menjadi target dari hyperlink. Pada waktu orang-orang menyebutnya sebagai sebuah "nama hypertext" [3] atau "nama dokumen".
Selama tiga dan setengah tahun, seperti World Wide Web teknologi inti dari HTML (yang HyperText Markup Language), HTTP, dan web browser dikembangkan, kebutuhan untuk membedakan string yang disediakan alamat untuk sumber daya dari string yang hanya bernama sebuah sumber muncul. Meskipun belum secara resmi ditetapkan, istilah Uniform Resource Locator datang untuk mewakili mantan, dan semakin perdebatan Uniform Resource Name datang untuk mewakili kedua.
Selama perdebatan menentukan URL dan guci-guci itu menjadi jelas bahwa dua konsep yang terkandung oleh ketentuan-ketentuan itu hanya aspek fundamental, menyeluruh pengertian tentang identifikasi sumber daya. Pada bulan Juni 1994, IETF dipublikasikan Berners-Lee's RFC 1630: RFC yang pertama (dalam teks non-normatif) mengakui keberadaan URL dan guci, dan, yang lebih penting, yang didefinisikan sintaks formal untuk Universal Resource Identifier - URL-seperti syntaxes string yang tepat dan semantik tergantung pada skema mereka. Selain itu, RFC ini berusaha untuk merangkum skema syntaxes URL yang digunakan pada saat itu. Hal ini juga diakui, tetapi tidak standardisasi, keberadaan relatif URL dan fragmen pengidentifikasi.

Penyempurnaan spesifikasi

Pada Desember 1994, RFC 1738 didefinisikan secara resmi URL relatif dan mutlak, memperbaiki sintaks URL umum, ditetapkan cara mengatasi URL relatif untuk bentuk absolut, dan lebih baik skema URL yang disebutkan kemudian digunakan. Definisi yang disepakati dan sintaks guci harus menunggu sampai penerbitan RFC 2141 Mei 1997.
Penerbitan RFC 2396 pada bulan Agustus 1998 melihat sintaks URI spesifikasi menjadi terpisah [4] dan sebagian besar bagian dari RFC 1630 dan 1738 yang berkaitan dengan URI dan URL yang secara umum direvisi dan diperluas [oleh siapa?]. RFC baru mengubah arti dari "U" dalam "URI": itu datang untuk mewakili "Uniform" daripada "Universal". Bagian dari RFC 1738 yang dirangkum skema URL yang ada bermigrasi ke dalam dokumen terpisah. [5] IANA menyimpan registri skema tersebut [6]; RFC 2717 pertama kali mendeskripsikan prosedur untuk mendaftarkan mereka.
Pada bulan Desember 1999, RFC 2732 menyediakan minor update untuk RFC 2396, yang memungkinkan URI untuk menampung alamat IPv6. Beberapa waktu kemudian, sejumlah kelemahan yang ditemukan di dua spesifikasi mengarah ke pengembangan sejumlah rancangan revisi di bawah judul rfc2396bis. Upaya masyarakat ini, dikoordinir oleh RFC 2396 rekan penulis Roy Fielding, memuncak dalam penerbitan RFC 3.986 pada Januari 2005. RFC ini, seperti tahun 2009 versi dari sintaks URI direkomendasikan untuk digunakan di Internet, merender RFC 2396 usang. Ini tidak, bagaimanapun, membuat rincian URL yang ada skema usang; RFC 1738 terus mengatur skema tersebut kecuali digantikan lain - RFC 2616 misalnya, menyempurnakan "http" skema. Secara bersamaan, IETF menerbitkan isi dari RFC 3.986 sebagai standar lengkap STD 66, yang mencerminkan pembentukan generik URI sintaks sebagai protokol Internet resmi.
Pada bulan Agustus 2002, RFC 3305 menunjukkan bahwa istilah "URL" memiliki, meskipun digunakan secara luas dalam bahasa Internet-sadar masyarakat luas, memudar ke dekat-keusangan. Sekarang hanya berfungsi sebagai pengingat bahwa beberapa URI bertindak sebagai alamat karena mereka memiliki skema yang menyiratkan semacam aksesibilitas jaringan, tanpa sistem apakah benar-benar menggunakan mereka untuk tujuan itu. Sebagai URI berbasis standar seperti Resource Description Framework membuat jelas, identifikasi sumber daya tidak perlu menyarankan pengambilan representasi sumber daya melalui Internet, tidak perlu mereka menyiratkan sumber daya berbasis jaringan sama sekali.
On November 1, 2006, Arsitektur Teknis W3C Group menerbitkan "On Menghubungkan Alternatif Representasi Untuk Aktifkan Discovery Dan Publishing", panduan untuk praktek-praktek terbaik dan kanonik URI untuk menerbitkan beberapa versi dari sumber tertentu. Sebagai contoh, konten mungkin berbeda menurut bahasa atau berdasarkan ukuran untuk menyesuaikan kapasitas atau pengaturan perangkat yang digunakan untuk mengakses konten.
Semantic Web yang menggunakan skema URI HTTP untuk mengidentifikasi kedua dokumen dan konsep-konsep di dunia nyata: ini telah menyebabkan kebingungan bagaimana membedakan keduanya. Arsitektur Teknis Kelompok W3C (TAG) menerbitkan sebuah e-mail pada bulan Juni 2005 tentang cara untuk memecahkan masalah ini. E-mail yang kemudian dikenal sebagai resolusi httpRange-14. [7] Untuk memperluas ini (agak singkat) email, W3C diterbitkan pada bulan Maret 2008, Interest Group Catatan Popular URI untuk Semantic Web [8]. Hal ini menjelaskan penggunaan konten dan negosiasi 303-kode pengarahan secara lebih rinci.

URI referensi

Sebuah referensi URI adalah jenis lain dari string yang mewakili URI, dan (pada gilirannya) sumberdaya yang diidentifikasi oleh URI. Penggunaan informal tidak sering mempertahankan pembedaan antara URI dan referensi URI, tetapi dokumen-dokumen protokol tidak boleh membiarkan untuk ambiguitas.
Sebuah referensi URI dapat mengambil bentuk URI penuh, atau hanya skema-bagian spesifik dari satu, atau bahkan beberapa komponennya trailing - bahkan string kosong. Opsional fragmen-identifier, didahului dengan "#", mungkin akan hadir pada akhir sebuah referensi URI. Bagian dari referensi sebelum "#" secara tidak langsung mengidentifikasi sumber daya, dan fragmen identifier mengidentifikasi beberapa bagian dari sumber daya itu.
Dalam rangka untuk memperoleh URI dari referensi URI, perangkat lunak mengubah URI referensi untuk "mutlak" oleh bentuk penggabungan dengan mutlak "dasar" URI sesuai dengan algoritma yang tetap. Memperlakukan sistem referensi URI relatif terhadap basis URI, meskipun dalam kasus referensi absolut, pangkalan tidak memiliki relevansi. URI dasar biasanya menunjukkan dokumen yang berisi referensi URI, meskipun hal ini dapat dikalahkan oleh deklarasi yang dibuat dalam dokumen atau sebagai bagian dari protokol transmisi data eksternal. Jika basis URI termasuk fragmen identifier, itu diabaikan selama proses penggabungan. Jika sebuah fragmen pengenal hadir dalam referensi URI, itu dipelihara selama proses penggabungan.
Web-dokumen bahasa markup sering menggunakan referensi URI untuk menunjuk ke sumber daya lainnya, seperti dokumen eksternal atau bagian tertentu dari dokumen logis yang sama.

URI penggunaan referensi dalam bahasa markup

• Dalam HTML, nilai atribut src pada elemen img adalah referensi URI, sebagaimana nilai atribut href atau link sebuah elemen.
• Pada XML, sistem pengenal SISTEM muncul setelah kata kunci dalam DTD adalah fragmentless referensi URI.
• Pada XSLT, nilai atribut href xsl: import elemen / instruksi adalah referensi URI; juga argumen pertama ke dokumen () function.

Contoh mutlak URI

• http://example.org/absolute/URI/with/absolute/path/to/resource.txt
• ftp://example.org/resource.txt
• urn: ISSN :1535-3613

Contoh referensi URI

• http://en.wikipedia.org/wiki/URI # Examples_of_URI_references ( "http" menentukan 'skema' nama, "en.wikipedia.org" adalah 'otoritas', "/ wiki / URI" dengan 'path' menunjuk ke artikel ini, dan "# Examples_of_URI_references" adalah 'fragmen' menunjuk ke bagian ini.)
• http://example.org/absolute/URI/with/absolute/path/to/resource.txt
• / / example.org / skema-relatif / URI / dengan / absolut / path / ke / resource.txt
• / relatif / URI / dengan / absolut / path / ke / resource.txt
• relatif / path / ke / resource.txt
• .. / .. / .. / resource.txt
•. / Resource.txt # frag01
• resource.txt
• # frag01
• (string kosong)

URI resolusi

Untuk "menyelesaikan" suatu URI berarti baik untuk mengkonversi URI relatif mengacu pada bentuk absolut, atau dereference URI sebuah URI atau referensi dengan mencoba untuk mendapatkan sebuah representasi sumber daya yang mengidentifikasi. The "penyelesai" dalam dokumen-komponen perangkat lunak pengolah biasanya menyediakan kedua layanan.
Orang dapat menganggap referensi URI sebagai sama-dokumen referensi: referensi ke dokumen yang berisi referensi URI sendiri. Perangkat lunak pengolah dokumen-didorong [oleh siapa?] Untuk menggunakan representasi arus dokumen untuk memenuhi resolusi-dokumen yang sama referensi tanpa mengambil perwakilan baru. Ini hanya rekomendasi, dan dokumen-perangkat lunak pengolah alternatif dapat menggunakan mekanisme lain untuk menentukan apakah akan memperoleh representasi baru.
URI saat ini spesifikasi sebagai tahun 2009, RFC 3986, mendefinisikan suatu referensi URI sebagai sama-dokumen referensi jika, ketika memutuskan untuk membentuk mutlak, itu menyamakan persis dengan basis URI yang berlaku untuk referensi. Biasanya, pangkalan URI URI adalah dokumen yang berisi referensi. XSLT 1.0, misalnya, memiliki dokumen () fungsi yang, sebagai akibatnya, mengimplementasikan fungsi ini. RFC 3986 juga mendefinisikan URI formal kesetaraan, yang dapat digunakan [oleh siapa?] Dalam rangka untuk menentukan bahwa sebuah referensi URI, meskipun tidak identik dengan basis URI, masih merupakan sumber daya yang sama dan dengan demikian dapat dianggap sebagai dokumen-sama referensi.
RFC 2396 ditentukan metode yang berbeda untuk menentukan sama-dokumen referensi; RFC 3986 membuat RFC 2396 usang, tetapi RFC 2396 masih berfungsi sebagai dasar dari banyak spesifikasi dan implementasi. Spesifikasi ini mendefinisikan referensi URI sebagai sama-dokumen referensi jika string kosong atau hanya terdiri dari "#" karakter diikuti oleh fragmen opsional.

Hubungan ke XML namespaces

XML memiliki konsep namespace, abstrak domain ke mana koleksi elemen dan nama atribut dapat ditetapkan. Namespace XML diidentifikasi oleh sebuah karakter string, nama namespace, yang harus sesuai dengan sintaks URI generik. Namun, nama namespace pada umumnya tidak dianggap [oleh siapa?] Untuk menjadi seorang URI karena "URI-ness" dari string adalah, sesuai dengan spesifikasi URI, berdasarkan tujuan penggunaannya, tidak hanya komponen leksikal mereka. Sebuah nama namespace juga tidak selalu berarti salah satu dari skema URI semantik, sebuah nama namespace yang diawali dengan "http:", misalnya, mungkin tidak ada hubungannya dengan protokol HTTP. XML profesional telah diperdebatkan secara intensif ini pada elektronik xml-dev mailing list; sebagian orang merasa bahwa sebuah nama namespace bisa menjadi URI, karena nama-nama koleksi yang terdiri dari namespace tertentu dapat dianggap [oleh siapa?] Untuk menjadi sumber daya yang sedang diidentifikasi [oleh siapa?], dan karena versi dari "Namespaces dalam XML" spesifikasi mengatakan bahwa nama namespace merupakan referensi URI. [9] Namun, konsensus tampaknya menunjukkan bahwa nama namespace hanyalah sebuah string yang terjadi untuk melihat seperti sebuah URI, tidak lebih.
Awalnya, nama namespace bisa sesuai dengan sintaks dari setiap yang tidak kosong referensi URI, tapi ralat ke "Namespaces Dalam Rekomendasi XML" kemudian usang penggunaan relatif referensi URI. Spesifikasi terpisah, dikeluarkan untuk ruang nama untuk XML 1.1, memungkinkan IRI referensi, bukan hanya URI referensi, untuk melayani sebagai dasar untuk nama namespace.
Dalam rangka untuk mencegah kebingungan yang mulai muncul di kalangan pendatang baru ke XML dari penggunaan URI (terutama HTTP URL) untuk ruang nama, bahasa deskriptif disebut RDDL (Resource Directory Description Language) dikembangkan, meskipun spesifikasi RDDL (http:// www.rddl.org/) tidak memiliki resmi berdiri dan tidak ada organisasi yang relevan (seperti W3C) telah dianggap atau menyetujuinya. Sebuah dokumen dapat memberikan RDDL mesin dan terbaca-manusia informasi tentang namespace tertentu dan tentang dokumen XML yang menggunakannya. Penulis dokumen XML didorong [oleh siapa?] Untuk meletakkan dokumen dalam lokasi RDDL sehingga jika nama namespace dalam dokumen mereka entah bagaimana menjadi de-direferensikan, maka dokumen RDDL akan diperoleh, sehingga memuaskan keinginan di antara banyak pengembang untuk namespace nama untuk menunjuk ke jaringan sumber daya yang dapat diakses.

0 komentar: