Z jakich części składa się adres URL?

W większości przypadków wystarczy powiedzieć „kupiłem domenę” czy „Nasze zdjęcia są przechowywane w innej witrynie”, nawet jeśli nie jest to prawda. W niektórych kontekstach konieczne jest jednak podanie dokładniejszych informacji. Jeśli np. zajmujesz się plikami cookie, musisz wiedzieć, na czym polega różnica między site a origin.

Nazwy części adresu URL są określone w standardzie, który definiuje też interfejs API JavaScript:

  • Standard adresów URL definiuje adresy URL i powiązane z nimi pojęcia, które umożliwiają inżynierom tworzenie współdziałających przeglądarek.
  • Komponent URL API standardu określa metody zapewnienia dostępu do części ciągu znaków adresu URL, takich jak schemat lub origin.

Ten dokument wyjaśnia różne terminy używane w przypadku ciągów znaków adresów URL HTTP lub HTTPS. Nie dotyczy to innych typów adresów URL, takich jak adresy URL plików czy danych. W przypadku terminów takich jak hostorigin dokładne definicje są z natury skomplikowane, dlatego w tym dokumencie znajdziesz przykłady i linki do standardu adresów URL zamiast pełnych wyjaśnień.

Za pomocą JavaScript możesz pobierać nazwy komponentów adresu URL zdefiniowanych przez interfejs URL API. Na przykład:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

Analizator adresów URL

Zmień URL poniżej, aby zobaczyć, jak nazywają się części jego ciągu. Możesz go też otworzyć na osobnej karcie na stronie url-parts.glitch.me.


Nazwy części adresu URL są podane poniżej w kolejności alfabetycznej.

Domena krajowa najwyższego poziomu (ccTLD)

Domena najwyższego poziomu zdefiniowana na liście kodów krajów ISO 3166-1.

  • W przypadku domeny https://example.org.au domena ccTLD to au.
  • W przypadku https://example.io domeną ccTLD jest io.

Nazwa domeny

Części adresu URL HTTP lub HTTPS rozdzielone kropkami: wszystko po schemacie, ale przed ścieżką lub portem (jeśli jest określony). Każda część nazwy domeny jest nazywana etykietą.

URL Nazwa domeny
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Skuteczna domena najwyższego poziomu (eTLD)

wpis na liście domen publicznych obejmujący TLD oraz(w przypadku domen eTLD z wieloma częściami) dodatkowe domeny poniżej domeny: drugiego poziomu, trzeciego poziomu itd.

  • Przykłady: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

Tak jak w poniższych przykładach, „sufiks publiczny” to nazwa, pod którą można zarejestrować domeny. Lista domen publicznych to lista wszystkich znanych domen publicznych, która jest często aktualizowana. Przeglądarki takie jak Chromium i Firefox używają listy w swoich kompilacjach.

eTLD+1

Zobacz domeny, które można zarejestrować.

eTLD i następującą ją subdomenę.

  • Przykłady: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Nazwa pliku

Nie jest zdefiniowany w standardzie adresów URL i nie należy do interfejsu API adresów URL, ale jest często używany w odniesieniu do końcowej części adresu URL, która nie jest ścieżką, na podstawie często błędnego założenia, że adres URL jest mapowany bezpośrednio na strukturę katalogu.

Na przykład w przypadku pola https://example.com/dir/file.html pole file.html może być nazywane nazwą pliku.

Wartość nazwy pliku jest też używana przez przeglądarki do nadawania nazwy zasobom po ich pobraniu. Na przykład https://example.com/images/image.jpg jest zwykle zapisywane lokalnie jako image.jpg.

Fragment

ciąg znaków po znaku # na końcu adresu URL, który stanowi identyfikator fragmentu.

  • Na przykład: adres URL https://example.com/cats#tabby ma wartość fragmentu identyfikatora tabby.

Część zawierająca # to hasz lub kotwica. Możesz też utworzyć link do fragmentu tekstu i go wyróżnić.

Hasz jest zwracany przez interfejs URL API, a nie przez fragment.

Pełna i jednoznaczna nazwa domeny (FQDN)

Pełny adres strony internetowej lub serwera, który jest mapowany na adres IP.

URL Pełna i jednoznaczna nazwa domeny
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

Adres FQDN adresu URL nie zawiera portu, nawet jeśli używany jest port inny niż domyślny.

Hash (lub kotwica)

Ciąg znaków po znaku # na końcu adresu URL, który zawiera identyfikator fragmentu. (W niektórych kontekstach jest on nazywany „kotwicą”).

Część z wyłączeniem # to fragment. Możesz też utworzyć link do fragmentu tekstu i go wyróżnić.

Hasz jest zwracany przez interfejs URL API, a nie przez fragment.

Host

Zgodnie ze standardem adresów URL hostem może być nazwa domeny, adres IP w wersji 4, adres IPv6, nieprzejrzysty host lub pusty host.

  • Definicja host w standardzie adresów URL nie uwzględnia portu.
  • URL.host zawiera port, chyba że jest to port domyślny schematu.
  • URL.hostname nie uwzględnia portu.
URL URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

Nazwa hosta

Nazwa hosta jest zdefiniowana przez interfejs API JavaScript URL, ale nie jest zdefiniowana nigdzie indziej przez standard adresów URL. Więcej informacji znajdziesz w artykule na temat reprezentacji hosta.

URL.hostname zwraca host bez port.

URL URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

Punkt początkowy

Standard adresów URL określa origin i odwołuje się do standardu HTML w przypadku tła.

W przypadku adresów URL HTTP lub HTTPS funkcja URL.origin zwraca schemat, host i port (chyba że port jest domyślny dla danego schematu).

URL URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

Parametr

Zobacz parametry wyszukiwania

Hasło

Nazwa użytkownika

Nazwa ścieżki

W przypadku adresu URL HTTP lub HTTPS część po domenie i porcie (jeśli są zdefiniowane), w tym nazwa pliku (jeśli jest zdefiniowana), ale bez ciągu wyszukiwania ani hasła.

URL URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

Czasem słowo „Ścieżka” odnosi się do nazwy ścieżki bez nazwy pliku. Na przykład w przypadku adresu URL https://example.com/cat/pattern/tabby.html „ścieżka” to /cat/pattern.

Port

Numer po : w adresie URL, który identyfikuje port sieciowy. Na przykład: w przypadku adresu URL https://example.com:1234/tabby numer portu to 1234.

Numer portu musi być 16-bitową liczbą bez znaku, czyli liczbą całkowitą z zakresu od 0 do 65 535 włącznie.

W przypadku adresu URL HTTP domyślnym portem jest 80, a w przypadku adresu URL HTTPS – 443. Adres URL nie musi zawierać numeru portu, chyba że jest używany port inny niż domyślny.

Jeśli port jest domyślny dla schematu, interfejs API zwraca pusty ciąg.

URL URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

Protokół

Schemat, po którym następuje : (na przykład http: lub https:).

Funkcja protocol jest dostępna w interfejsie URL API, ale scheme nie.

Zapytanie (czyli „ciąg zapytania”)

Część adresu URL search (bez wiodącego znaku ?).

Domena możliwa do zarejestrowania

  • W przypadku adresu URL z domeną najwyższego poziomu w jednej części, np. com lub org (czyli domeną najwyższego poziomu, która odpowiada domenie najwyższego poziomu), domena i domena drugiego poziomu przed nią: na przykład example.com lub example.org.
  • W przypadku adresu URL z 2-częściową domeną najwyższego poziomu (eTLD), w której dozwolona jest tylko rejestracja na 3 poziomie (czyli wpisy na liście domen publicznych, takie jak com.augithub.io), należy podać 2-częściową domenę najwyższego poziomu („sufiks publiczny”) oraz nazwę domeny na 3 poziomie tuż przed nią. Na przykład: example.org.au lub example.github.io.
  • W przypadku eTLD z 3 lub więcej częściami: eTLD i domena bezpośrednio po nim.

[język] Scheme

Część adresu URL (przed ://), która określa protokół sieciowy (lub działanie, które ma wykonać klient użytkownika), gdy wysyłana jest prośba o adres URL. Na przykład żądanie dotyczące adresu URL z schematem https powinno być wysyłane przy użyciu protokołu HTTPS. W przypadku żądania do adresu URL o schemacie takim jak file, mailto lub git, który nie odpowiada protokołowi sieci, zachowanie zależy od klienta użytkownika. Gdy użytkownik kliknie link mailto, większość przeglądarek otworzy domyślną aplikację poczty e-mail, korzystając z wartości w adresie URL href linku.

Znak zapytania, po którym następuje seria par klucz-wartość reprezentujących parametry i ich wartości podawane po ścieżce dostępu.

URL URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

query lub „ciąg zapytania” odnosi się do search bez początkowego ?.

Zobacz też Parametry wyszukiwania.

Parametry wyszukiwania

Odwołuje się do elementu danych przekazanego w ciągu wyszukiwania (lub „ciągu zapytania”).

  • Na przykład w przypadku https://example.com/cats?pattern=tabby&mood=bonkers ciąg wyszukiwania zawiera 2 parametry: pattern=tabbymood=bonkers.

Domena drugiego poziomu

Domena przed domeną najwyższego poziomu.

  • W przypadku adresu URL https://www.example.com domeną drugiego poziomu jest example.com, która jest subdomeną domeny najwyższego poziomu com.

  • W przypadku https://example.org.au domena najwyższego poziomu to au, domena drugiego poziomu to org, a domena trzeciego poziomu to example. W tym przykładzie org.au jest domeną podrzędną domeny au, a example.org.au jest domeną podrzędną do domeny org.au.

Witryna

Witryna jest definiowana przez standard HTML, a także w ramach tej samej witryny, która obejmuje schematw ramach tej samej witryny bez schematu.

W standardzie adresów URL ani w interfejsie JavaScript URL API nie jest zdefiniowany parametr site.

W tym kontekście:

  • W przypadku adresu URL HTTP lub HTTPS z jednoczęściowym eTLD, np. https://example.com, witryna składa się z scheme, eTLD i etykiety. Przykład: w przypadku adresu URL https://www.example.com/cat witryną jest https://example.com. W przypadku tego adresu URL domena eTLD jest taka sama jak domena najwyższego poziomu.
  • W przypadku wieloczęściowych domen eTLD, takich jak co.uk, github.io lub sa.edu.au, „witryna” składa się z elementów scheme, eTLD i wcześniejszej etykiety. Na przykład: dla adresu URL https://cat.example.co.uk/tabby witryna to https://example.co.uk, a witryna https://www.education.sa.gov.au to https://education.sa.gov.au.
URL Witryna (z schematem i domeną eTLD+1)
https://cat.example.com/tabby („https”, „example.com”)
https://cat.example.co.uk/tabby ("https", "example.co.uk")

W przeciwieństwie do origin, site nie zawiera port.

Subdomena

Domena należąca do domeny wyższego poziomu.

W przypadku witryn z domenami najwyższego poziomu składającymi się z jednej części, np. com lub org, części przed domeną najwyższego poziomu, z których każda jest oddzielona kropką.

  • www.example.com to subdomena domeny example.com.
  • support.api.example.org jest subdomeną domeny api.example.org, która jest subdomeną domeny example.org.

W przypadku dwuczęściowych domen eTLD, w których dozwolone są tylko rejestracje trzeciego poziomu(np. pozycje na liście domen publicznych, takich jak co.uk i github.io), subdomeny są elementami składowymi nazwy domeny poprzedzającej jej adres.

  • Na przykład: cat.example.co.uk jest subdomeną domeny example.co.uk.

Fragment tekstu

Typ fragmentu, który umożliwia podświetlenie zakresu tekstu w obrębie strony i tworzenie linku do niego. Gdy użytkownik kliknie link do fragmentu tekstu, przeglądarka spróbuje go odnaleźć, przewinąć do niego i podświetlić.

Fragment tekstu zaczyna się od :~:text=, a następnie następuje w nim wyszukiwane hasło.

Jeśli na przykład chcesz utworzyć link do pierwszego wystąpienia tekstu „fragment” na tej stronie, użyj adresu URL https://web.dev/articles/url-parts#:~:text=fragment.

Dowiedz się więcej: Fragmenty tekstu.

Domena najwyższego poziomu (TLD)

nazwę domeny wymienioną w bazie danych strefy głównej, np. com lub org. Niektóre domeny najwyższego poziomu to domeny krajowe najwyższego poziomu, np. uk i tv.

W opisie części adresu URL HTTP lub HTTPS rozszerzenie domeny najwyższego poziomu to nazwa domeny, która następuje po ostatniej kropce.

  • W przypadku adresu https://example.org domena najwyższego poziomu to org.
  • W przypadku adresu https://example.org.au domena najwyższego poziomu to au, a org jest domeną drugiego poziomu (chociaż org jest też domeną najwyższego poziomu). org.au to eTLD składający się z 2 części.

Lista publicznych sufiksów eTLD zawiera domeny z jedną, 2 lub większą liczbą części, więc TLD może być też eTLD. Na przykład:

  • W przypadku adresu https://example.com eTLD to com, który jest też domeną najwyższego poziomu.

Nazwa użytkownika

Na początku adresu URL można podać opcjonalną nazwę użytkownika i hasło, ale ta funkcja została wycofana z powodów bezpieczeństwa i w wielu przypadkach jest ignorowana.

Na przykład w przypadku https://user123:password1@example.com nazwa użytkownika to user123. Pamiętaj, że nazwa użytkownika (i hasło!) są w postaci zwykłego tekstu, a nie zaszyfrowane. Jeśli nazwa użytkownika zawiera symbole : lub @, muszą one zostać zakodowane na potrzeby adresu URL odpowiednio na %3A i %40.


Więcej informacji