Jaka jest różnca między URL a URI?

Autor: Opublikowano

W skrócie: URI to identyfikator zasobu, a URL to taki identyfikator, który wskazuje również sposób dostępu do zasobu i jego lokalizację. W klasycznym podziale każdy URL jest URI, ale nie każde URI jest URL-em. Adres strony internetowej możesz więc poprawnie nazwać zarówno URL-em, jak i URI — w codziennej rozmowie określenie „URL” będzie zwykle bardziej zrozumiałe.

Co oznacza URI?

URI to skrót od Uniform Resource Identifier, czyli jednolitego identyfikatora zasobu. Zasobem może być strona internetowa, zdjęcie, dokument, element udostępniany przez API, ale też obiekt, którego nie da się po prostu pobrać z internetu.

Najważniejszą funkcją URI jest identyfikowanie: wskazanie, o jaki zasób chodzi. Sam identyfikator nie musi mówić, gdzie ten zasób się znajduje ani jak uzyskać do niego dostęp.

Przykładem jest urn:isbn:9780131103627. To identyfikator publikacji wykorzystujący numer ISBN. Nie wskazuje konkretnej księgarni, biblioteki ani pliku do pobrania. Rozpoznaje publikację, ale nie podaje jej internetowego adresu.

URI jest zatem pojęciem szerszym niż adres strony. To kategoria identyfikatorów, do której należą także dobrze znane adresy zaczynające się od https:.

Co oznacza URL?

URL to skrót od Uniform Resource Locator, czyli jednolitego lokalizatora zasobu. Wskazuje lokalizację zasobu oraz mechanizm dostępu do niego, na przykład przez HTTPS.

Przykładowy URL to https://example.com/poradnik. Zawiera informacje potrzebne przeglądarce do rozpoczęcia próby uzyskania dostępu do wskazanej strony:

Adres może zawierać również port, parametry zapytania i fragment. W przykładzie https://example.com/poradnik?jezyk=pl#wprowadzenie część jezyk=pl jest parametrem zapytania, a wprowadzenie identyfikuje fragment dokumentu. Fragment nie jest wysyłany do serwera jako część żądania HTTP; interpretuje go oprogramowanie po stronie użytkownika.

URL nie gwarantuje, że zasób istnieje lub jest dostępny. Adres może prowadzić do usuniętej strony, wymagać logowania albo wskazywać serwer, który nie odpowiada. Nadal pozostaje URL-em.

Na czym dokładnie polega różnica?

Najprościej zapamiętać ją przez dwa pytania: URI odpowiada na „co identyfikujemy?”, a URL dodatkowo pozwala określić „gdzie i w jaki sposób szukać dostępu?”. Nie są to dwie rozłączne kategorie: URL jest szczególnym przypadkiem URI.

PrzykładRodzajCo przekazuje?
https://example.com/zdjecie.jpgURL i URIWskazuje lokalizację zdjęcia i sposób dostępu przez HTTPS.
urn:isbn:9780131103627URI typu URNIdentyfikuje publikację, ale nie podaje jej lokalizacji w sieci.

URN, czyli Uniform Resource Name, to identyfikator oparty na nazwie w określonej przestrzeni nazw. W drugim przykładzie taką przestrzenią jest ISBN. URN nie trzeba używać, aby zrozumieć adresy stron, ale pomaga on zobaczyć, dlaczego URI nie jest po prostu innym słowem na URL.

Pomocne porównanie to książka i jej miejsce na półce. Numer ISBN służy do identyfikacji określonego wydania, natomiast informacja o bibliotece, regale i półce pomaga je odnaleźć. To tylko analogia: internetowy URL może jednocześnie identyfikować zasób i wskazywać jego lokalizację.

Którego określenia używać w praktyce?

Jeśli prosisz o adres strony, odnośnik do produktu lub adres pliku, używaj słowa URL. Jest precyzyjne w tym kontekście i nie wymaga tłumaczenia szerszej kategorii identyfikatorów.

W dokumentacji technicznej możesz spotkać nazwę URI nawet wtedy, gdy przykładowa wartość wygląda jak zwykły adres HTTPS. Nie musi to być błąd: autor używa szerszego pojęcia albo nazwy przyjętej w danym standardzie. Jeśli pole API nazywa się redirect_uri, zachowaj tę nazwę dokładnie — nie zmieniaj jej na redirect_url tylko dlatego, że przekazujesz adres strony.

Warto też odróżnić pełny adres od jego części. Samo example.com jest nazwą domenową, a /poradnik jest względnym odwołaniem, którego znaczenie zależy od adresu bazowego. Żaden z tych zapisów nie przekazuje samodzielnie tych samych informacji co pełny URL https://example.com/poradnik.

Dlaczego czasem te nazwy są używane zamiennie?

Klasyczny podział URI na identyfikatory obejmujące URL i URN dobrze wyjaśnia podstawową różnicę. Terminologia w standardach nie jest jednak całkowicie jednolita: standard WHATWG URL, stosowany w środowisku przeglądarek, posługuje się pojęciem URL i definiuje własne reguły przetwarzania adresów.

Dlatego przy programowaniu ważniejsze od samej etykiety są wymagania konkretnej biblioteki lub API: czy przyjmuje pełny adres, czy obsługuje odwołania względne i jakie schematy dopuszcza. Gdy wypełniasz pole „adres strony”, podaj pełny URL; gdy implementujesz integrację, sprawdź format wymagany w jej dokumentacji.

Zobacz też: Co to jest FreeBSD?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.