Co to jest URL?
URL jako URI (ang. Uniform Resource Identifier)
URL jest rodzajem URI, czyli Ujednoliconego Identyfikatora Zasobów (ang. Uniform Resource Identifier).
Pochodzenie URL
Termin URL został zdefiniowany przez wynalazcę sieci World Wide Web, Tim Berners-Lee, w roku 1994.
Konceptualizacja URL jest powiązana z rozwojem Protokołu Przesyłania Dokumentów Hipertekstowych (ang. Hypertext Transfer Protocol, HTTP) zapoczątkowanym przez Tim Berners-Lee w CERN w 1989 roku. Aby dowiedzieć się więcej zobacz What is HTTP?.
Składnia URI
Jak zauważono powyżej, URL jest rodzajem URI.
Generyczna składnia URI zawiera 5 komponentów:
-
schemat (ang. scheme) (wymagany),
-
źródło (ang. authority) (opcjonalne),
-
ścieżka (ang. path) (wymagana),
-
kwerenda (ang. query) (opcjonalna), i
-
fragment (opcjonalny).
Komponent źródło (ang. authority) zawiera trzy podkomponenty:
-
infoużytkownika (ang. userinfo) (opcjonalne),
-
host (wymagane), i,
-
port (optional).
Podkomponent infoużytkownika może być dalej podzielony na następujące podkomponenty:
-
nazwaużytkownika (ang. username) (wymagana), i
-
hasło (ang. password) (opcjonalne).
Warto zapamiętać, że jedynymi wymaganymi komponentami URI są schemat i ścieżka.
Składnia URL
URL przestrzega generycznej składni URI, jednakże komponent schemat
nazywany jest protokołem
. Komponent protokół może mieć takie wartości, jak file
, http
, https
, ftp
oraz mailto
.
A więc, URL może zawierać w sobie pięć komponentów:
-
protokół (ang. protocol) (required),
-
źródło (ang. authority) (opcjonalne), składające się z opcjonalnego infoużytkownika (ang. userinfo), wymaganego hosta oraz opcjonalnego portu,
-
ścieżka (wymagana),
-
kwerenda (opcjonalna), i
-
fragment (opcjonalny).
Z tych pięciu komponentów, tylko protokół
oraz ścieżka
są wymagane.
URL, który odnosi się do lokalnego pliku jest przykładem URL, w którym tylko protokół oraz ścieżka są wskazane.
Protokół (ang. protocol) URL
Częstą wartością protokołu może być file
, http
(razem ze swym zaszyfowanym odpowiednikiem https
), ftp
oraz mailto
.
Ścieżka (ang. path) URL
Ścieżka składa się z jednego segmentu (np. /filmy
) lub z wielu segmentów (np. /filmy/komedie
)
Kwerenda (ang. query) w URL
W URL kwerenda poprzedzona jest znakiem zapytania (?
).
Składnia kwerendy nie jest jasno zdefiniowana, ale zazwyczaj składa się z par kluczy i wartości (ang. key-value pairs) rozdzielonych znakiem znakiem ampersand (&
).
Fragment (ang. fragment) w URL
W URL fragment poprzedzony jest znakiem hashtag (#
).
Adresy URL w zapytaniach (ang. requests) HTTP
Adresy URL używane są w zapytaniach HTTP do wskazywania zasoób podlegających dostępowi.
Zasoby, które mogą podlegać dostępowi używając HTTP oraz adresów URL to przede wszystkim dokumenty HTML.
Adresy URL w hiperłączach (ang. hiperlinks)
Adresy ULR mogą być używane w hiperłączach.
Na przykład, hiperłącze w HTML zbudowane jest używając elementu anchor
, a wartość jego atrybutu href
(ang. hypertext reference) może być oznaczona jako URL.
<a
href="https://soundof.it/co-to-jest-url"
>
Co to jest URL?
</a>
Atrybut href
może być również oznaczony jako relatywny URL (ang. relative URL).
<a
href="/co-to-jest-url"
>
Co to jest URL?
</a>
Konwersja i kodowanie URL
Dany URL może zostać użyty do transmisji danych poprzez sieć Internet, gdy składa się z bezpiecznych znaków ASCII.
Znak spoza ASCII, aby zostać użytym w URL, musi być skonwertowanym do tak zwanego Punycode składającego się z bezpiecznych znaków ASCII.
Przykładem znaku spoza ASCII jest ♥
, który, aby być użytym w URL, musi zostać skonwertowany do xn--g6h
.
Znak ASCII, który nie jest uznany za bezpieczny, aby być użytym w URL musi zostać zakodowany do zestawu bezpiecznych znaków ASCII składającego się z prefiksu %
oraz następującego po nim numeru heksadecymalnego (ang. hexadecimal).
Przykładem znaku ASCII, który nie jest uznany za bezpieczny, jest znak spacja
, który musi być zakodowany do +
lub %20
Adres IRI (ang. Internationalized Resource Identifier)
Większość współczesnych przeglądarek wspiera adresy IRI.
Na potrzeby transmisji poprzez Internet, znaki spoza ASCII w IRI konwertowane są do tak zwanego kodu Punycode, który składa się tylko z bezpiecznych znaków ASCII.
Przykładem znaku Unicode spoza ASCII jest 人
, który musi być skonwertowany do xn--gmq
.
Nazwa domeny w IRI, która zawiera w sobie zinternacjonalizowane znaki, określana jest IDN, czyli Zinternacjonalizowaną Nazwą Domeny (ang. Internationalized Domain Name).