В большинстве случаев можно сказать такие вещи, как «Я купил домен» или «Наши изображения размещены на другом сайте», даже если это не совсем так. Однако в некоторых контекстах необходимо быть более точным. Например, имея дело с файлами 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 .
Доменное имя
Части 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
соответственно.
Узнать больше
- WHATWG: URL Уровень жизни
- WHATWG: Уровень жизни HTML
- URL-API
- Понимание понятий «тот же сайт» и «тот же источник»
- RFC: унифицированные указатели ресурсов (URL)
- RFC: URI, URL-адреса и URN.
- База данных корневых зон (каталог TLD )
- Список общедоступных суффиксов (каталог eTLD : «Общедоступный суффикс представляет собой набор DNS-имен или подстановочных знаков, объединенных точками. Он представляет собой часть доменного имени, которая не находится под контролем отдельного владельца регистрации»).
- Глоссарий ICANN
- Что такое полное доменное имя?
- Сколькими способами вы можете разрезать URL-адрес и дать названия частям?
- Глоссарий веб-документов MDN
- Что такое URL-адрес?
- История URL-адреса