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

В большинстве случаев можно сказать такие вещи, как «Я купил домен» или «Наши изображения размещены на другом сайте», даже если это не совсем так. Однако в некоторых контекстах необходимо быть более точным. Например, имея дело с файлами cookie, вам необходимо понимать разницу между сайтом и источником .

Имена частей URL указаны в стандарте, который также определяет API JavaScript:

  • Стандарт URL определяет URL-адреса и связанные с ними концепции, позволяющие инженерам создавать совместимые веб-браузеры.
  • Компонент URL API стандарта определяет методы для предоставления доступа к частям строки URL, таким как схема или источник .

В этом документе объясняется ряд терминов, используемых со строками URL-адресов HTTP или HTTPS. Он не охватывает другие типы URL-адресов, такие как URL-адреса файлов или данных. Точные определения таких терминов, как host и origin , по своей сути сложны, поэтому в этом документе представлены примеры и ссылки на стандарт URL, а не попытки полных объяснений.

Вы можете использовать JavaScript для получения имен компонентов URL-адресов, определенных URL-API. Например:

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

URL-анализатор

Отредактируйте URL-адрес ниже, чтобы увидеть, как называются части строки URL-адреса. Вы также можете открыть это в отдельной вкладке по адресу url-parts.glitch.me .


Имена частей URL перечислены ниже в алфавитном порядке.

Национальный домен верхнего уровня (ccTLD)

Домен верхнего уровня, определенный в списке кодов стран ISO 3166-1 .

  • Для https://example.org.au ccTLD — au .
  • Для https://example.io ccTLD — io .

Доменное имя

Части URL-адреса HTTP или HTTPS, разделенные точками: все после схемы , но до пути или порта (если они указаны). Каждая часть доменного имени называется меткой .

URL-адрес Доменное имя
https://example.github.io/path пример.github.io
https://support.example.org.au:443 support.example.org.au

Эффективный домен верхнего уровня (eTLD)

Запись в списке общедоступных суффиксов , включающая TLD и (для eTLD, состоящих из нескольких частей) дополнительные домены ниже: второго уровня, третьего уровня и т. д.

  • Например: com , com.au , github.io , sa.edu.au , schools.nsw.edu.au .

«Публичный суффикс», такой как в этих примерах, представляет собой имя, под которым могут быть зарегистрированы домены. Список общедоступных суффиксов представляет собой список всех известных общедоступных суффиксов, который часто обновляется. Браузеры, включая 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 .

Часть, включающая # , называется хешем или привязкой. Вы также можете указать ссылку на фрагмент текста и выделить его.

URL-API возвращает хэш, а не фрагмент.

Полное доменное имя (FQDN)

Полный адрес веб-сайта или сервера, который соответствует IP-адресу .

URL-адрес полное доменное имя
https://example.com:1234/cats example.com
https://api.example.github.io API.example.github.io

Полное доменное имя URL-адреса не включает порт , даже если используется порт, отличный от порта по умолчанию.

Хэш (или якорь)

Строка, следующая за символом # в конце URL-адреса и предоставляющая идентификатор фрагмента . (В некоторых контекстах это называется «привязкой».)

Часть, исключающая # , называется фрагментом . Вы также можете указать ссылку на фрагмент текста и выделить его.

URL-API возвращает хэш, а не фрагмент.

Хозяин

Как определено в стандарте URL , хостом может быть доменное имя , адрес IP v4, адрес 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=табби /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 включительно.

Для URL-адреса 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 доступен из URL API, а scheme — нет.

Запрос (или «строка запроса»)

Поисковая часть URL-адреса, исключая начальный символ ? .

Регистрируемый домен

  • Для URL-адреса с eTLD, состоящим из одной части, например com или org (т. е. eTLD, который соответствует TLD ), домен и домен второго уровня перед ним: например, 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 , большинство браузеров открывают приложение электронной почты по умолчанию, используя значения в URL-адресе href ссылки.

Знак вопроса, за которым следует ряд пар ключ-значение, которые представляют параметры и их значения, указанные после имени пути .

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 вместе с тем же сайтом , который включает в себя схему , и без схемы тот же сайт .

Сайт не определен в стандарте 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 URL-адреса — com , который также является TLD.

Имя пользователя

В начале URL-адреса можно указать необязательное имя пользователя и пароль , но это устарело по соображениям безопасности и во многих случаях будет игнорироваться.

Например, для https://user123:password1@example.com имя пользователя — user123 . Обратите внимание, что имя пользователя (и пароль!) представлены в виде обычного текста и не зашифрованы. Если имя пользователя содержит символы : или @ , они должны быть URL-адресами, закодированными в %3A и %40 соответственно.


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