URI ( /ˌjuː ɑːr ˈaɪ/ English Uniform Resource Identifier ) este un identificator de resurse uniform (uniform). URI este o secvență de caractere care identifică o resursă abstractă sau fizică. Denumit anterior Universal Resource Identifier - un identificator universal de resurse.
URI este un șir de caractere care vă permite să identificați orice resursă: document , imagine, fișier , serviciu, căsuță de e -mail , etc. În primul rând, vorbim despre resursele Internet și World Wide Web . URI oferă o modalitate simplă și extensibilă de a identifica resursele. Extensibilitatea URI înseamnă că există deja mai multe scheme de identificare în cadrul URI-urilor și vor fi create mai multe în viitor.
Un URI este fie un URL , fie un URN sau ambele.
Un URL este un URI care, pe lângă identificarea unei resurse, oferă și informații despre locația acelei resurse. Iar un URN este un URI care identifică doar o resursă într-un anumit spațiu de nume (și, prin urmare, într-un context specific ), dar nu indică locația acesteia. De exemplu, URN urn:ISBN:0-395-36341-1 este un URI care indică către resursa (carte) 0-395-36341-1 în spațiul de nume ISBN , dar spre deosebire de o adresă URL, un URN nu indică locația a acelei resurse: nu spune în ce magazin poate fi cumpărat sau pe ce site să descarce. Cu toate acestea, în ultima vreme a existat o tendință de a spune doar URI despre orice șir de identificare, fără o elaborare suplimentară. Deci, poate că termenii URL și URN vor deveni în curând un lucru din trecut.
Deoarece un URI nu indică întotdeauna cum se obține o resursă, spre deosebire de o adresă URL, ci doar o identifică, acest lucru face posibilă descrierea utilizând RDF (Resource Description Framework) resurse care nu pot fi obținute prin Internet (de exemplu, o persoană, o mașină, oraș etc.).
În 1990, la Geneva , Elveția , în interiorul zidurilor Consiliului European pentru Cercetare Nucleară ( fr. Conseil Européen pour la Recherche Nucléaire, CERN ), omul de știință britanic Tim Berners-Lee a inventat identificatorul de locație a resursei URL . Deoarece URL-ul este cel mai utilizat subset al URI-ului, același an 1990 este considerat a fi anul nașterii URI-ului. Dar, strict vorbind, conceptul URI a fost documentat abia în iunie 1994 în RFC 1630 .
O nouă versiune a URI a fost definită în 1998 în RFC 2396 , moment în care cuvântul Universal din nume a fost schimbat în Uniform . În decembrie 1999, RFC 2732 a introdus modificări minore la specificația URI pentru a o face compatibilă cu IPv6 . În august 2002, RFC 3305 a anunțat deprecierea termenului URL și a priorității URI. Structura actuală şi sintaxa URI-urilor este guvernată de RFC 3986 , lansat în ianuarie 2005 . Multe dintre cele mai recente tehnologii Web semantic (cum ar fi RDF ) se bazează pe standardul URI. Acum, rolul principal în dezvoltarea URI aparține Consorțiului World Wide Web .
URL-ul a fost o inovație fundamentală pe Internet , așa că principiile URI au fost documentate pentru a fi pe deplin compatibile cu adresele URL. De aici a venit marele dezavantaj al URI, care a venit ca o moștenire din URL. URI-urile, cum ar fi adresele URL, pot folosi doar un set limitat de caractere latine și semne de punctuație (chiar mai mici decât ASCII ). Cu alte cuvinte, dacă dorim să folosim caractere chirilice în URI sau hieroglife sau, de exemplu, caractere franceze specifice , atunci va trebui să codificăm URI-ul în același mod în care Wikipedia codifică adresele URL cu caractere Unicode . De exemplu, o linie ca:
https://ru.wikipedia.org/wiki/Кириллица
codificat în adresa URL ca:
https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0
Deoarece literele tuturor alfabetelor sunt supuse unei astfel de transformări, cu excepția alfabetului latin folosit în engleză , URI-urile cu cuvinte în alte limbi (chiar și cele europene) își pierd capacitatea de a fi percepute de oameni. Iar acest lucru este în flagrant contradicție cu principiul internaționalismului , proclamat de toate organizațiile de conducere ale Internetului , inclusiv W3C și ISOC . Standardul IRI ( Internationalized Resource Identifier ) este conceput pentru a rezolva această problemă - identificatori internaționali de resurse în care caracterele Unicode ar putea fi folosite fără probleme și care nu ar încălca drepturile altor limbi . Deși este greu de spus în avans dacă IRI -urile vor putea vreodată să înlocuiască URI-urile într-o utilizare atât de răspândită.
O altă variantă interesantă a URI este XRI Extensible Resource Identifier dezvoltat de organizația OASIS . Acest format își propune să creeze identificatori care sunt complet independenți de context, adică independenți de protocol , domeniu , cale, aplicație și platformă - total independenți.
De asemenea, creatorul URI-ului, Tim Berners-Lee, a spus că sistemul de nume de domeniu care stă la baza URL-ului este o decizie proastă, impunând resurselor o arhitectură ierarhică care nu este potrivită pentru web-ul hipertext .
În această intrare:
sistem schema de acces la resurse (indicând adesea un protocol de rețea), de exemplu http , ftp , file , ldap , mailto, urn ierarhic-parte conține date, de obicei organizate într-o formă ierarhică, care, împreună cu datele dintr-o componentă de solicitare non-ierarhică , servesc la identificarea unei resurse în sfera unei scheme URI. De obicei , partea hier conține calea către resursă (și eventual adresa serverului pe care se află înaintea acesteia) sau identificatorul resursei (în cazul unui URN). cerere această componentă URI opțională este descrisă mai sus. fragment (de asemenea, optional)
RFC 3986 :
vă permite să identificați indirect o resursă secundară, referindu-vă la prima și indicând informații suplimentare. O resursă secundară identificabilă poate fi o parte sau un subset al unui primar, o reprezentare a acestuia sau o altă resursă definită sau descrisă de o astfel de resursă.
Text original (engleză)[ arataascunde] Componenta de identificare a fragmentului a unui URI permite indirect identificarea unei resurse secundare prin referire la o resursă primară și informații suplimentare de identificare. Resursa secundară identificată poate fi o porțiune sau un subset al resursei primare, o vedere asupra reprezentărilor resursei primare sau o altă resursă definită sau descrisă de acele reprezentări.Partea unui URI fără o schemă de referință de resurse este adesea denumită „ referință URI ” . Există precedente pentru utilizarea referințelor URI în HTML , XHTML , XML și XSLT . Procesul de conversie a unei referințe URI într-o formă absolută a unui URI se numește rezoluție URI .
Procesul pentru dezvoltarea de noi scheme este descris în RFC 2718 . Noile scheme trebuie înregistrate la IANA ( Internet Assigned Numbers Authority ), procedura de înregistrare este stabilită în RFC 2717 . Ambele cereri de comentarii ( RFC ) sunt în prezent în curs de revizuire.
Pentru așa-numitul URI „parsing” ( în engleză parsing ), adică pentru descompunerea URI-ului în părțile sale componente și identificarea ulterioară a acestora, este cel mai convenabil să folosiți sistemul de expresii regulate disponibil în aproape toate limbajele de programare moderne. RFC 3986 recomandă utilizarea următorului model pentru a analiza un URI :
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?( #(.*))? 12 3 4 5 6 7 8 9Acest model include cele 9 grupuri indicate mai sus prin numere (consultați Expresii regulate pentru mai multe despre modele și grupuri ), care analizează cel mai complet și mai precis structura tipică URI, unde:
Astfel, dacă utilizați acest model pentru a analiza, de exemplu, un astfel de URI tipic:
http://www.ics.uci.edu/pub/ietf/uri/#Relatedatunci cele 9 grupuri de modele de mai sus vor produce următoarele rezultate:
/relative/URI/with/absolute/path/to/resource.txt
//example.org/scheme-relative/URI/with/absolute/path/to/resource.txt
relativ/cale/la/resource.txt
../../../resource.txt
resource.txt
/resource.txt#frag01
#frag01
[șir gol] - echivalent cu analizarea identificatorului de către parser cu rezultatul [șir gol], adică linkul duce la obiectul implicit din schema implicită
URI | scheme|
---|---|
Oficial | |
neoficial |
web semantic | |
---|---|
Bazele | |
Subsecțiuni |
|
Aplicații |
|
subiecte asemănătoare | |
Standarde |
|