Каковы части URL-адреса?

В большинстве случаев вполне допустимо говорить что-то вроде «Я купил домен» или «Наши изображения размещены на другом сайте», даже если это не совсем так. Однако в некоторых контекстах необходимо быть более точным. Например, при работе с файлами 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 и предшествующей ему метки . Например: для URL https://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 соответственно.


Узнать больше