В большинстве случаев вполне допустимо говорить что-то вроде «Я купил домен» или «Наши изображения размещены на другом сайте», даже если это не совсем так. Однако в некоторых контекстах необходимо быть более точным. Например, при работе с файлами cookie необходимо понимать разницу между «сайтом» и «источником» .
Названия частей URL-адреса определены в стандарте, который также определяет API JavaScript:
- Стандарт URL определяет URL-адреса и связанные с ними понятия, позволяя инженерам создавать совместимые веб-браузеры.
- Компонент URL API стандарта определяет методы для предоставления доступа к частям строки URL, таким как схема или источник .
В этом документе объясняется ряд терминов, используемых в строках URL-адресов HTTP или HTTPS. Он не охватывает другие типы URL-адресов, такие как URL-адреса файлов или данных. Для таких терминов, как host и origin , точные определения по своей природе сложны, поэтому в этом документе приводятся примеры и ссылки на стандарт URL, а не предпринимается попытка дать полные объяснения.
С помощью JavaScript можно получить имена компонентов URL, определенных API URL. Например:
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
анализатор URL-адресов
Отредактируйте приведенный ниже URL-адрес, чтобы увидеть, как называются части строки URL. Вы также можете открыть его в отдельной вкладке по адресу https://chrome.dev/url-parts/ .
Названия частей URL-адреса перечислены ниже в алфавитном порядке.
Домен верхнего уровня с кодом страны (ccTLD)
Домен верхнего уровня , определенный в списке кодов стран ISO 3166-1 .
- Для
https://example.org.auнациональный домен верхнего уровня —au. - Для
https://example.ioнациональный домен верхнего уровня —io.
Доменное имя
Часть URL-адреса HTTP или HTTPS, разделённая точками: всё, что находится после схемы , но перед путем или портом (если указан). Каждая часть доменного имени называется меткой .
| URL | Доменное имя |
|---|---|
| https://example.github.io/path | example.github.io |
| https://support.example.org.au:443 | support.example.org.au |
Эффективный домен верхнего уровня (eTLD)
Запись в публичном списке суффиксов , включающая домен верхнего уровня (TLD) и (для доменов верхнего уровня с несколькими частями) дополнительные домены ниже него: домены второго уровня, третьего уровня и так далее.
- Например:
com,com.au,github.io,sa.edu.au,schools.nsw.edu.au.
«Публичный суффикс», как в приведенных примерах, — это имя, под которым могут быть зарегистрированы домены. Список публичных суффиксов (Public Suffix List) — это перечень всех известных публичных суффиксов, который часто обновляется. Браузеры, включая Chromium и Firefox, используют этот список в своих сборках.
eTLD+1
См. регистрируемый домен .
Домен верхнего уровня (eTLD) плюс предшествующий ему субдомен.
- Например:
example.com,example.org.au,example.github.io,example.sa.edu.au,example.schools.nsw.edu.au.
Имя файла
Этот термин не определен в стандарте URL и не является частью API URL, но обычно используется для обозначения конечной части URL, не являющейся путем, исходя из — часто неверного — предположения, что URL напрямую соответствует структуре каталогов.
Например, в случае с https://example.com/dir/file.html , file.html может быть указано как имя файла.
Значение имени файла также используется браузерами для присвоения имени ресурсу при его загрузке. Например, https://example.com/images/image.jpg обычно сохраняется локально как image.jpg .
Фрагмент
Строка, следующая за символом # в конце URL-адреса и содержащая идентификатор фрагмента .
- Например: URL-адрес
https://example.com/cats#tabbyимеет значение идентификатора фрагментаtabby.
Часть текста, содержащая символ # , называется хешем или якорем. Вы также можете создать ссылку на фрагмент текста и выделить его.
Хэш возвращается API URL, а не фрагмент.
Полное доменное имя (FQDN)
Полный адрес веб-сайта или сервера, сопоставляемый с IP-адресом .
| URL | FQDN |
|---|---|
| https://example.com:1234/cats | example.com |
| https://api.example.github.io | api.example.github.io |
Полное доменное имя (FQDN) для URL-адреса не включает порт , даже если используется нестандартный порт.
Хэш (или якорь)
Строка, следующая за символом # в конце URL-адреса и представляющая собой идентификатор фрагмента . (В некоторых контекстах это называется «якорем».)
Часть текста, за исключением символа # , называется фрагментом . Вы также можете создать ссылку на фрагмент текста и выделить его.
Хэш возвращается API URL, а не фрагмент.
Хозяин
В соответствии со стандартом URL , хост может представлять собой доменное имя , IP-адрес v4, IP-адрес IPv6, непрозрачный хост или пустой хост.
- В определении
hostв стандарте URL порт не указан. -
URL.hostвключает порт, если только порт не является портом по умолчанию для данной схемы. -
URL.hostnameне содержит порт.
| 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 |
Имя хоста
Имя хоста определяется API URL в JavaScript, но не используется в других местах стандартом URL. Для получения более подробной информации см. раздел «Представление хоста» .
URL.hostname возвращает имя хоста без указания порта .
| 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 |
Источник
Стандарт URL определяет origin и ссылается на стандарт HTML для фона.
Для URL-адресов HTTP или HTTPS URL.origin возвращает схему , хост и порт (если только порт не является портом по умолчанию для данной схемы).
| 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 |
Параметр
См. параметры поиска
Пароль
См. имя пользователя .
Путь
Для URL-адреса HTTP или HTTPS часть после домена и порта (если определено), включая имя файла (если определено), но без строки поиска или хеша .
| 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 |
Иногда "путь" используется для обозначения пути к файлу без указания имени файла. Например, для URL-адреса https://example.com/cat/pattern/tabby.html "путь" будет /cat/pattern .
Порт
Число после : в URL-адресе, обозначающее сетевой порт. Например: для URL-адреса https://example.com:1234/tabby номер порта — 1234.
Номер порта должен быть 16-битным беззнаковым целым числом : другими словами, целым числом от 0 до 65535 включительно.
Для HTTP-адреса порт по умолчанию — 80; для HTTPS — 443. В URL-адресе не обязательно указывать номер порта, если не используется порт, отличный от порта по умолчанию.
API возвращает пустую строку, если порт является портом по умолчанию для данной схемы.
| 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 |
Протокол
Схема , используемая с помощью двоеточия : например http: или https: :).
protocol доступен через API URL, но scheme — нет.
Запрос (или "строка запроса")
Поисковая часть URL-адреса, за исключением начального знака ? .
Регистрируемый домен
- Для URL-адреса с однокомпонентным eTLD, таким как
comилиorg(то есть eTLD, соответствующим домену верхнего уровня ), указывается домен и домен второго уровня перед ним: например,example.comилиexample.org. - Для URL-адреса с двухкомпонентным eTLD, где разрешена только регистрация третьего уровня (т. е. записи в списке публичных суффиксов, такие как
com.auиgithub.io), двухкомпонентный домен верхнего уровня ("публичный суффикс") и имя домена третьего уровня, расположенное непосредственно перед ним. Например:example.org.auилиexample.github.io. - Для eTLD, состоящих из трех и более частей, это сам eTLD и домен, предшествующий ему.
Схема
Часть URL-адреса (до :// ), определяющая сетевой протокол (или действие, выполняемое пользовательским агентом) при отправке запроса к URL-адресу. Например, запрос к URL-адресу со схемой https должен выполняться с использованием протокола HTTPS . Для запроса к URL-адресу со схемой, такой как file , mailto или git , которая не соответствует сетевому протоколу, поведение зависит от пользовательского агента. Например, когда пользователь щелкает по ссылке mailto , большинство браузеров открывают свое почтовое приложение по умолчанию, используя значения из атрибута href URL-адреса ссылки.
Поиск
Вопросительный знак, за которым следует ряд пар ключ-значение, представляющих параметры и их значения, указанные после пути к файлу .
| 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 или "строка запроса" обозначает search без начального знака ? ".
См. также Параметры поиска .
Параметры поиска
Обратитесь к элементу данных, переданному в поисковой строке (или "строке запроса").
- Например: для
https://example.com/cats?pattern=tabby&mood=bonkersпоисковая строка имеет два параметра:pattern=tabbyиmood=bonkers.
Домен второго уровня
Домен, предшествующий домену верхнего уровня .
Для URL-адреса
https://www.example.comдомен второго уровня —example.com, являющийся поддоменом домена верхнего уровняcom.Для
https://example.org.auдомен верхнего уровня —au, домен второго уровня —org, а домен третьего уровня —example. В этом примереorg.auявляется поддоменомau, аexample.org.au— поддоменомorg.au
Сайт
Тип сайта определяется стандартом HTML, а также same-site , который включает в себя scheme и schemeless same-site .
Этот параметр не определен в стандарте URL или в API URL JavaScript.
В данном контексте:
- Для URL-адреса HTTP или HTTPS с однокомпонентным eTLD , например,
https://example.com, сайт состоит изscheme, eTLD и метки перед ней. Например: для URL-адресаhttps://www.example.com/catсайт будетhttps://example.com. (Для этого URL-адреса eTLD совпадает с доменом верхнего уровня .) - Для многокомпонентных eTLD , таких как
co.uk,github.ioилиsa.edu.au, "сайт" состоит изscheme, eTLD и предшествующей ему метки . Например: для URLhttps://cat.example.co.uk/tabbyсайтом будетhttps://example.co.uk, а дляhttps://www.education.sa.gov.auсайтом будетhttps://education.sa.gov.au.
| URL | Сайт (со схемой и eTLD +1) |
|---|---|
| https://cat.example.com/tabby | ("https", "example.com") |
| https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
В отличие от источника , местоположение не включает порт .
Поддомен
Домен внутри домена более высокого уровня.
Для сайтов с однокомпонентными доменами верхнего уровня, такими как com или org , части, предшествующие домену верхнего уровня, каждая из которых разделена точкой.
-
www.example.comявляется поддоменомexample.com. -
support.api.example.orgявляется поддоменомapi.example.org, который, в свою очередь, является поддоменомexample.org.
Для двухкомпонентных eTLD, где разрешена только регистрация третьего уровня (т. е. записи в публичном списке суффиксов, такие как co.uk и github.io ), поддоменами являются части доменного имени, предшествующие им.
- Например:
cat.example.co.uk— это поддоменexample.co.uk.
Фрагмент текста
Фрагмент текста — это тип фрагмента , позволяющий создавать ссылки на фрагменты текста и выделять их на странице. Когда пользователь переходит по ссылке, содержащей фрагмент текста, браузер пытается найти этот фрагмент, прокрутить страницу до него и выделить его.
Текстовый фрагмент начинается с :~:text= за которым следует поисковый запрос.
Например, чтобы сослаться на первое вхождение текста «фрагмент» на этой странице, используйте URL-адрес https://web.dev/articles/url-parts#:~:text=fragment .
Узнайте больше: Фрагменты текста .
Домен верхнего уровня (TLD)
Доменное имя, указанное в базе данных корневой зоны , например, com или org . Некоторые домены верхнего уровня являются доменами верхнего уровня с кодом страны , например, uk и tv .
При описании частей URL-адреса HTTP или HTTPS, TLD — это доменное имя, следующее за последней точкой.
- Для
https://example.orgдомен верхнего уровня URL-адреса —org. - Для
https://example.org.auдомен верхнего уровня URL —au, аorg— домен второго уровня (хотяorgтакже является доменом верхнего уровня).org.au— это двухкомпонентный eTLD .
В публичный список суффиксов eTLD входят домены, состоящие из одной, двух или более частей, поэтому TLD также может быть eTLD. Например:
- Для
https://example.comдомен верхнего уровня (eTLD) —com, который также является доменом верхнего уровня.
Имя пользователя
В начале URL-адреса можно указать необязательное имя пользователя и пароль , но по соображениям безопасности это устарело и во многих случаях будет игнорироваться.
Например, при использовании https://user123:password1@example.com имя пользователя будет user123 . Обратите внимание, что имя пользователя (и пароль!) находятся в открытом виде и не зашифрованы. Если имя пользователя содержит символы : или @ они должны быть закодированы в формате URL в %3A и %40 соответственно.
Узнать больше
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- URL API
- Понимание понятий «один и тот же сайт» и «одно происхождение»
- RFC: Универсальные указатели ресурсов (URL)
- RFC: URI, URL и URN
- База данных корневой зоны (каталог доменов верхнего уровня )
- Список публичных суффиксов (каталог eTLD : «Публичный суффикс — это набор DNS-имен или символов подстановки, объединенных точками. Он представляет собой часть доменного имени, которая не контролируется отдельным регистрантом»).
- Глоссарий ICANN
- Что такое полное доменное имя?
- Сколькими способами можно разбить URL-адрес на части и назвать эти части?
- Глоссарий веб-документации MDN
- Что такое URL?
- История URL-адреса