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

W większości przypadków możesz powiedzieć np. „Kupiłem domenę” lub „Nasze obrazy są hostowane w innej witrynie”, nawet jeśli nie jest to do końca prawdą. W niektórych sytuacjach konieczna jest jednak większa precyzja. Na przykład w przypadku plików cookie musisz znać różnicę między witrynąźródłem.

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

  • Standard URL definiuje adresy URL i powiązane z nimi pojęcia, aby umożliwić inżynierom tworzenie interoperacyjnych przeglądarek internetowych.
  • Komponent URL API standardu definiuje metody zapewniające dostęp do części ciągu adresu URL, takich jak schemat czy źródło.

W tym dokumencie wyjaśniamy różne terminy używane w ciągach adresów URL HTTP lub HTTPS. Nie obejmuje innych typów adresów URL, takich jak adresy URL plików lub danych. W przypadku terminów takich jak hostorigin dokładne definicje są z natury złożone, dlatego w tym dokumencie zamiast pełnych wyjaśnień podajemy przykłady i linki do standardu adresów URL.

Za pomocą JavaScriptu możesz pobrać 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

Edytuj poniższy adres URL, aby zobaczyć nazwy poszczególnych części ciągu adresu URL. Możesz też otworzyć tę stronę w osobnej karcie pod adresem https://chrome.dev/url-parts/.


Nazwy części adresu URL są wymienione 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 krajowa domena najwyższego poziomu to au.
  • W przypadku domeny https://example.io krajowa domena najwyższego poziomu to io.

Nazwa domeny

Części adresu URL HTTP lub HTTPS oddzielone 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 sufiksów publicznych, w tym TLD i (w przypadku sufiksów eTLD składających się z kilku części) dodatkowe domeny niższego poziomu: domena drugiego poziomu, domena trzeciego poziomu itd.

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

„Sufiks publiczny”, taki jak w tych przykładach, to nazwa, pod którą można zarejestrować domeny. Lista sufiksów publicznych zawiera wszystkie znane sufiksy publiczne i jest często aktualizowana. Przeglądarki, w tym ChromiumFirefox, korzystają z tej listy w swoich kompilacjach.

eTLD+1

Zobacz domenę, którą można zarejestrować.

eTLD plus subdomena, która ją poprzedza.

  • 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 URL ani nie jest częścią interfejsu URL API, ale jest powszechnie używany do określania 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 bezpośrednio powiązany ze strukturą katalogu.

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

Wartość nazwy pliku jest też używana przez przeglądarki do nazywania zasobu, jeśli zostanie on pobrany. Na przykład https://example.com/images/image.jpg jest zwykle zapisywany lokalnie w folderze image.jpg.

Fragment

Ciąg znaków występujący po znaku # na końcu adresu URL, który zawiera identyfikator fragmentu.

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

Część zawierająca znak # jest nazywana haszem lub kotwicą. Możesz też utworzyć link do fragmentu tekstu i go wyróżnić.

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

Pełna i jednoznaczna nazwa domeny (FQDN)

Pełny adres witryny 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

W pełnej nazwie domeny adresu URL nie uwzględnia się portu, nawet jeśli używany jest port inny niż domyślny.

Hash (lub kotwica)

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

Część bez # to fragment. Możesz też utworzyć link do fragmentu tekstu i go wyróżnić.

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

Host

Zgodnie ze standardem URL host może być nazwą domeny, adresem IPv4, adresem IPv6, nieprzezroczystym hostem lub pustym hostem.

  • Definicja host w standardzie URL nie obejmuje portu.
  • URL.host zawiera port, chyba że jest on domyślny dla schematu.
  • URL.hostname nie obejmuje 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 JavaScript URL API, ale nie w innych miejscach przez standard URL. Więcej informacji znajdziesz w sekcji reprezentacja 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 URL definiujeorigin i zawiera linki do standardu HTML, aby zapewnić kontekst.

W przypadku adresów URL HTTP lub HTTPS funkcja URL.origin zwraca schemat, hosta i port (chyba że port jest domyślny dla 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

Zobacz nazwę użytkownika.

Nazwa ścieżki

W przypadku adresu URL HTTP lub HTTPS jest to część adresu po domenie i porcie (jeśli jest zdefiniowany), w tym filename (jeśli jest zdefiniowana), ale bez ciągu wyszukiwania ani skrótu.

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

Słowo „Ścieżka” jest czasami używane w odniesieniu do ś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 znaku : 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ą całkowitą bez znaku, czyli liczbą całkowitą z zakresu od 0 do 65 535 włącznie.

W przypadku adresu URL HTTP port domyślny to 80, a w przypadku HTTPS – 443. Adres URL nie musi określać numeru portu, chyba że używany jest 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, a po nim : (np. http: lub https:).

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

Zapytanie (lub „ciąg zapytania”)

Część adresu URL search bez znaku ? na początku.

Domena, którą można zarejestrować

  • W przypadku adresu URL z jednoczęściową eTLD, np.com lub org (czyli domeną eTLD, która odpowiada TLD), domena i poprzedzająca ją domena drugiego poziomu, np. example.com lub example.org.
  • W przypadku adresu URL z dwuczęściową domeną eTLD, w której dozwolona jest tylko rejestracja na poziomie trzecim (np. wpisy na liście domen publicznych, takie jak com.augithub.io), dwuczęściowa domena najwyższego poziomu („sufiks publiczny”) i nazwa domeny trzeciego poziomu bezpośrednio przed nią. Na przykład: example.org.au lub example.github.io.
  • W przypadku domen eTLD składających się z 3 lub więcej części jest to domena eTLD i domena przed nią.

[język] Scheme

Część adresu URL (przed znakiem ://), która określa protokół sieciowy (lub działanie, które ma podjąć agent użytkownika), gdy wysyłane jest żądanie do adresu URL. Na przykład żądanie adresu URL ze schematem https powinno być wysyłane przy użyciu protokołu HTTPS. W przypadku żądania wysłanego do adresu URL ze schematem, takim jak file, mailto lub git, który nie odpowiada protokołowi sieciowemu, zachowanie zależy od klienta użytkownika. Gdy np. użytkownik kliknie link mailto, większość przeglądarek otworzy domyślną aplikację poczty e-mail, używając wartości w adresie URL linku href.

Znak zapytania, po którym następuje seria par klucz-wartość reprezentujących parametry i ich wartości, podanych po pathname.

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 poprzedzającego znaku ?.

Zobacz też Parametry wyszukiwania.

Parametry wyszukiwania

Odwołanie do elementu danych przekazywanego w ciągu wyszukiwania (lub „ciągu zapytania”).

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

Domena drugiego poziomu

Domena przed domeną najwyższego poziomu.

  • W przypadku adresu URL https://www.example.com domena drugiego poziomu to example.com, czyli subdomena domeny najwyższego poziomu com.

  • W przypadku adresu 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 subdomeną domeny au, a example.org.au jest subdomeną domeny org.au.

Witryna

Witryna jest zdefiniowana w standardzie HTML, podobnie jak ta sama witryna, która obejmuje schemat, oraz ta sama witryna bez schematu.

Witryna nie jest zdefiniowana w standardzie URL ani w interfejsie JavaScript URL API.

W tym kontekście:

  • W przypadku adresu URL HTTP lub HTTPS z jednoczęściową eTLD, np. https://example.com, witryna składa się z scheme, domeny eTLD i etykiety przed nią. Na przykład w przypadku adresu URL https://www.example.com/cat witryna to https://example.com. (W przypadku tego adresu URL eTLD jest taka sama jak domena najwyższego poziomu).
  • W przypadku wieloczęściowych eTLD, takich jak co.uk, github.io lub sa.edu.au, „witryna” składa się z scheme, eTLDetykiety przed nią. Na przykład w przypadku adresu URL https://cat.example.co.uk/tabby witryna to https://example.co.uk, a w przypadku adresu https://www.education.sa.gov.au witryna to https://education.sa.gov.au.
URL Witryna (ze schematem i 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 witryna nie zawiera portu.

Subdomena

Domena w domenie 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 sufiksów eTLD, w których dozwolone są tylko rejestracje na poziomie trzecim(czyli wpisów na liście sufiksów publicznych, takich jak co.ukgithub.io), subdomenami są części nazwy domeny przed tymi sufiksami.

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

Fragment tekstu

Rodzaj fragmentu, który umożliwia tworzenie linków do zakresu tekstu na stronie i jego wyróżnianie. Gdy użytkownik kliknie link z fragmentem tekstu, przeglądarka spróbuje znaleźć tekst na stronie, przewinąć do niego i go wyróżnić.

Fragment tekstu zaczyna się od znaku :~:text=, po którym następuje wyszukiwane słowo.

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.

Więcej informacji: fragmenty tekstu.

Domena najwyższego poziomu (TLD)

Nazwa domeny wymieniona w bazie danych strefy głównej, np. com lub org. Niektóre domeny najwyższego poziomu to domeny krajowe najwyższego poziomu, np. uktv.

W przypadku opisywania części adresu URL HTTP lub HTTPS rozszerzenie domeny najwyższego poziomu to nazwa domeny, która wystę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 to domena drugiego poziomu (mimo że org jest też domeną najwyższego poziomu). org.au to dwuczęściowa eTLD.

Lista sufiksów publicznych eTLD obejmuje domeny składające się z 1, 2 lub większej liczby części, więc TLD może być też eTLD. Na przykład:

  • W przypadku adresu https://example.com eTLD to com, czyli domena najwyższego poziomu.

Nazwa użytkownika

Na początku adresu URL można podać opcjonalną nazwę użytkownika i hasło, ale ze względów bezpieczeństwa zostało to wycofane i w wielu przypadkach będzie ignorowane.

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


Więcej informacji