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ą a ź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 host i origin 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.aukrajowa domena najwyższego poziomu toau. - W przypadku domeny
https://example.iokrajowa domena najwyższego poziomu toio.
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 Chromium i Firefox, 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#tabbyma wartość identyfikatora fragmentutabby.
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
hostw standardzie URL nie obejmuje portu. URL.hostzawiera port, chyba że jest on domyślny dla schematu.URL.hostnamenie 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.
comluborg(czyli domeną eTLD, która odpowiada TLD), domena i poprzedzająca ją domena drugiego poziomu, np.example.comlubexample.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.auigithub.io), dwuczęściowa domena najwyższego poziomu („sufiks publiczny”) i nazwa domeny trzeciego poziomu bezpośrednio przed nią. Na przykład:example.org.aulubexample.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.
Szukaj
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=bonkersciąg wyszukiwania ma 2 parametry:pattern=tabbyimood=bonkers.
Domena drugiego poziomu
Domena przed domeną najwyższego poziomu.
W przypadku adresu URL
https://www.example.comdomena drugiego poziomu toexample.com, czyli subdomena domeny najwyższego poziomucom.W przypadku adresu
https://example.org.audomena najwyższego poziomu toau, domena drugiego poziomu toorg, a domena trzeciego poziomu toexample. W tym przykładzieorg.aujest subdomeną domenyau, aexample.org.aujest subdomeną domenyorg.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ę zscheme, domeny eTLD i etykiety przed nią. Na przykład w przypadku adresu URLhttps://www.example.com/catwitryna tohttps://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.iolubsa.edu.au, „witryna” składa się zscheme, eTLD i etykiety przed nią. Na przykład w przypadku adresu URLhttps://cat.example.co.uk/tabbywitryna tohttps://example.co.uk, a w przypadku adresuhttps://www.education.sa.gov.auwitryna tohttps://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.comto subdomena domenyexample.com.support.api.example.orgjest subdomeną domenyapi.example.org, która jest subdomeną domenyexample.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.uk i github.io), subdomenami są części nazwy domeny przed tymi sufiksami.
- Na przykład:
cat.example.co.ukjest subdomeną domenyexample.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. uk i tv.
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.orgdomena najwyższego poziomu toorg. - W przypadku adresu
https://example.org.audomena najwyższego poziomu toau, aorgto domena drugiego poziomu (mimo żeorgjest też domeną najwyższego poziomu).org.auto 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.comeTLD tocom, 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 i %40.
Więcej informacji
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- URL API
- Wyjaśnienie pojęć „ta sama witryna” i „to samo pochodzenie”
- RFC: Uniform Resource Locators (URL)
- RFC: URIs, URLs and URNs
- Root Zone Database (katalog domen najwyższego poziomu)
- Lista sufiksów publicznych (katalog eTLDs: „Sufiks publiczny to zestaw nazw DNS lub symboli wieloznacznych połączonych kropkami. Reprezentuje część nazwy domeny, która nie jest pod kontrolą indywidualnego abonenta”.
- Słowniczek ICANN
- Co to jest pełna i jednoznaczna nazwa domeny?
- Na ile sposobów można podzielić adres URL i jak nazwać poszczególne części?
- Słownik MDN Web Docs
- Co to jest URL?
- Historia adresu URL