Uniform Resource Identifier (URI,ang.Uniform Resource Identifier, tłum.Ujednolicony Identyfikator Zasobów) jest standardem internetowym umożliwiającym łatwą identyfikację zasobów w sieci. Zdefiniowany jest w dokumencieRFC 2396 ↓.
URI jest zazwyczaj łańcuchem znaków, zapisanym zgodnie ze składnią określoną w standardzie. Łańcuch ten określa nazwę (URN) lub adres (URL) zasobu, identyfikowanego przez dany URI.
URI może zostać sklasyfikowane jakoURL (ang.Uniform Resource Locator) lubURN (ang.Uniform Resource Name).
Szczególnym przypadkiem URI jest URL, który oprócz identyfikacji zasobu wskazuje również sposób dostępu do niego.
<schemat> :<specyficzna dla schematu część hierarchiczna>
lub
<schemat> :<specyficzna dla schematu część niehierarchiczna>
Część hierarchiczna zawsze zaczyna się od ukośnika/ (np. z://) podczas gdy niehierarchiczne URImają tylko dwukropek: i dalsza ich część jest brana jako jedna całość i nie podlegaanalizowaniu.
Części w nawiasach kwadratowych są nieobowiązkowe. Część hierarchiczna może posiadać następującą budowę:
//podmiot [ /ścieżka ]
/ścieżka
Podmiot zawierać musi nazwę hosta poprzedzoną ewentualnie przez nazwę użytkownika i hasło:użytkownik:hasło@host,użytkownik@host, po której może wystąpić numer portu oddzielony dwukropkiem. Host jest dowolną poprawnąnazwą domenową lubadresem IP. Używanie nazwy użytkownika z hasłem w URI najczęściej stanowi poważną lukę w bezpieczeństwie i z tego powodu nie jest zalecane. Zapytanie zawiera dodatkowe parametry dlaserwera, wpływające na zawartość odpowiedzi. Typowym zastosowaniem zapytań są strony WWW generowane dynamicznie na serwerach WWW korzystających z technologiiCGI, np. stronyPHP. Zapytanie ma postać parametrów z wartościami przypisanymi po znaku równości, przy czym kolejne parametry oddzielone są od siebie znakiemampersanda (&).
Właściwie URI jest pojęciem nadrzędnym i obejmujeURL iURN jako dwa różne sposoby reprezentacji tego samego adresu. Podstawową różnicą między nimi jest fakt, że URL z definicji wskazuje lokalizację, tj. miejsce, z którego dany zasób można ściągnąć (adres) i sposób, w jaki można to zrobić (protokół, np. http, ftp, ...). URI służy tylko do identyfikacji i niekoniecznie musi wskazywać miejsce skąd coś można ściągnąć. Standardowo URI strony www (np. http://www.wikipedia.org) jest utożsamiany z jej URL. Stąd wynika fakt, że te dwa terminy są często używane zamiennie.
Rozróżnienie naURL i URI odgrywa jednak kluczową rolę w technologiiRDF, stanowiącej sieci trzeciej generacjiSemantic Web. Wizja nakreślona przez twórcęSemantic WebTima Berners-Lee mówi o zapisywaniu ludzkiej wiedzy w postaci zrozumiałej dla maszyn. W tej postaci wszystko ma swój własny unikatowy identyfikator, przez wszystkich jednakowo interpretowany – URI. Identyfikatory odnoszą się zarówno do abstrakcyjnych pojęć, jak i do konkretnych bytów – ludzi, zdarzeń itd. Powstaje potrzeba rozróżnienia. URI strony domowej to nie to samo, co URI jej właściciela – człowieka. URIWikipedii to nie to samo, co URIWikimedia Foundation – organizacji, która nią zarządza, rozumianej jakoosoba prawna. Tworzy się słowniki pojęć, które nadają identyfikatory URI pojęciom nawet tak abstrakcyjnym jak 'byt fizyczny' czy 'byt abstrakcyjny'[1]. Badania w tym kierunku są bardzo głęboko osadzone w filozofii.
URI może też służyć do identyfikacji zasobów na dysku komputera, plików, wpisów w kalendarzu, kontaktów w książce adresowej, maili w skrzynce pocztowej etc. Istnieje cała gama projektów badawczych, które idą w tym kierunku, np. Haystack[2], Gnowsis[3], Nepomuk[4].
W swej istocie URI jest ogólnym narzędziem do identyfikacji wszystkiego. Utożsamianie go z URL – adresem spod którego coś można ściągnąć z internetu – jest sporym uproszczeniem.