URL-адрес
Единый указатель ресурсов | |
Аббревиатура | URL-адрес |
---|---|
Статус | Опубликовано |
Впервые опубликовано | 1994 год |
Последняя версия | Уровень жизни 2023 |
Организация | Целевая группа по интернет-инжинирингу (IETF) |
комитет | Рабочая группа по технологиям веб-гипертекстовых приложений (WHATWG) |
Ряд | Запрос комментариев (RFC) |
Редакторы | Энн ван Кестерен |
Авторы | Тим Бернерс-Ли |
Базовые стандарты |
|
Сопутствующие стандарты | УРИ , УРН |
Домен | Всемирная паутина |
Лицензия | CC BY 4.0 |
Веб-сайт | URL |
Единый указатель ресурса ( URL ), в просторечии известный как адрес в Интернете . [1] это ссылка на ресурс , определяющая его местоположение в компьютерной сети и механизм его получения. URL-адрес — это особый тип универсального идентификатора ресурса (URI). [2] [3] хотя многие люди используют эти два термина как синонимы. [4] [а] URL-адреса чаще всего используются для ссылки на веб-страницы ( HTTP / HTTPS ), но также используются для передачи файлов ( FTP ), электронной почты ( mailto ), доступа к базе данных ( JDBC ) и многих других приложений.
Большинство веб-браузеров отображают URL-адрес веб-страницы над страницей в адресной строке . Типичный URL-адрес может иметь форму http://www.example.com/index.html
, что указывает на протокол ( http
), имя хоста ( www.example.com
) и имя файла ( index.html
).
История
Унифицированные локаторы ресурсов были определены в RFC 1738 в 1994 году Тима Бернерса-Ли , изобретателя Всемирной паутины , и рабочей группы URI Инженерной рабочей группы Интернета (IETF), [7] как результат сотрудничества, начавшегося на сессии IETF «Живые документы с высоты птичьего полета» в 1992 году. [7] [8]
Формат сочетает в себе ранее существовавшую систему доменных имен (созданную в 1985 году) с синтаксисом пути к файлу , где косые черты используются для разделения имен каталогов и файлов . Уже существовали соглашения, согласно которым имена серверов могли начинаться с полного пути к файлу, которому предшествовала двойная косая черта ( //
). [9]
Позже Бернерс-Ли выразил сожаление по поводу использования точек для разделения частей доменного имени в URI , сожалея, что он не использовал косую черту повсюду: [9] а также сказал, что, учитывая двоеточие, следующее за первым компонентом URI, две косые черты перед именем домена не нужны. [10]
Первые сотрудники WorldWideWeb, включая Бернерса-Ли, первоначально предложили использовать UDI: универсальные идентификаторы документов. Ранний (1993 г.) проект спецификации HTML. [11] называются «универсальными» локаторами ресурсов. Это было отменено где-то между июнем 1994 года ( RFC 1630 ) и октябрь 1994 г. (draft-ietf-uri-url-08.txt). [12] В своей книге «Плетение паутины » Бернерс-Ли подчеркивает свое предпочтение первоначальному включению слова «универсальный» в расширение, а не слову «униформный», на которое оно было позже изменено, и дает краткое описание разногласий, которые привели к к изменению.
Синтаксис
Каждый URL-адрес HTTP соответствует синтаксису общего URI. Общий синтаксис URI состоит из пяти компонентов, организованных иерархически в порядке убывания значимости слева направо: [13] : §3
URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment]
Компонент не определен , если он имеет связанный разделитель и этот разделитель не отображается в URI; компоненты схемы и пути всегда определены. [13] : §5.2.1 Компонент пуст, если в нем нет символов; компонент схемы всегда непустой. [13] : §3
Компонент полномочий состоит из подкомпонентов :
authority = [userinfo "@"] host [":" port]
это представлено На синтаксической диаграмме как:
URI включает в себя:
- Непустой компонент схемы, за которым следует двоеточие (
:
), состоящая из последовательности символов, начинающейся с буквы и сопровождаемой любой комбинацией букв, цифр плюс (+
), период (.
) или дефис (-
). Хотя схемы нечувствительны к регистру, каноническая форма — строчные, и документы, в которых указаны схемы, должны писаться строчными буквами. Примеры популярных схем включают в себяhttp
,https
,ftp
,mailto
,file
,data
иirc
. Схемы URI должны быть зарегистрированы в Управлении по присвоению номеров Интернета (IANA) , хотя на практике используются незарегистрированные схемы. [б] - Дополнительный компоненту полномочий , которому предшествуют две косые черты (
//
), включающий:- Дополнительный подкомпонент userinfo, за которым следует символ at (
@
), который может состоять из имени пользователя и необязательного пароля , которым предшествует двоеточие (:
). Использование форматаusername:password
в подкомпоненте userinfo устарел по соображениям безопасности. Приложения не должны отображать в виде открытого текста любые данные после первого двоеточия (:
), найденный в подкомпоненте userinfo, если только данные после двоеточия не являются пустой строкой (означающей отсутствие пароля). - А Подкомпонент хоста , состоящий либо из зарегистрированного имени (включая, помимо прочего, имя хоста ), либо из IP-адреса . Адреса IPv4 должны быть записаны в десятичном формате , а IPv6 должны быть заключены в скобки ( адреса
[]
). [13] : §3.2.2 [с] - Дополнительный подкомпонент порта , которому предшествует двоеточие (
:
), состоящее из десятичных цифр.
- Дополнительный подкомпонент userinfo, за которым следует символ at (
- А компонент пути , состоящий из последовательности сегментов пути, разделенных косой чертой (
/
). Для URI всегда определяется путь, хотя определенный путь может быть пустым (нулевая длина). Сегмент также может быть пустым, что приводит к двум последовательным косым чертам (//
) в компоненте пути. Компонент пути может напоминать или точно соответствовать пути файловой системы , но не всегда подразумевает связь с ним. Если определен компонент полномочий, то компонент пути должен быть либо пустым, либо начинаться с косой черты (/
). Если компонент полномочий не определен, то путь не может начинаться с пустого сегмента, то есть с двух косых черт (//
) — поскольку следующие символы будут интерпретироваться как авторитетный компонент. [16] : §3.3
- По соглашению в URI http и https последняя часть пути называется pathinfo , и это необязательно. Он состоит из нуля или более сегментов пути, которые относятся не к существующему имени физического ресурса (например, файлу, программе внутреннего модуля или исполняемой программе), а к логической части (например, команде или части квалификатора), которая должна передаваться отдельно в первую часть пути, которая идентифицирует исполняемый модуль или программу, управляемую веб-сервером ; это часто используется для выбора динамического контента (документа и т. д.) или для его адаптации по запросу (см. также: CGI и PATH_INFO и т. д.).
- Пример:
- ТИП:
"http://www.example.com/questions/3456/my-document"
- где:
"/questions"
это первая часть пути ( исполняемый модуль или программа) и"/3456/my-document"
— это вторая часть пути с именем pathinfo , которая передается исполняемому модулю или программе с именем"/questions"
выбрать требуемый документ.
- ТИП:
- URI http или https, содержащий часть pathinfo без части запроса , также может называться « чистым URL », последняя часть которого может быть « слагом ».
Разделитель запроса | Пример |
---|---|
Амперсанд ( & )
|
key1=value1&key2=value2
|
Точка с запятой ( ; ) [д]
|
key1=value1;key2=value2
|
- Дополнительный компонент запроса , которому предшествует вопросительный знак (
?
), состоящий из строки запроса неиерархических данных. Его синтаксис не очень четко определен, но по соглашению чаще всего представляет собой последовательность пар атрибут-значение, разделенных разделителем . - Дополнительный компонент фрагмента, которому предшествует хэш (
#
). Фрагмент содержит идентификатор фрагмента, указывающий направление к вторичному ресурсу, например заголовок раздела в статье, идентифицируемый остатком URI. Если первичным ресурсом является документ HTML , фрагмент часто представляет собойid
атрибут определенного элемента, и веб-браузеры будут прокручивать этот элемент в поле зрения.
Веб-браузер обычно разыменовывает URL-адрес, выполняя HTTP- запрос к указанному хосту, по умолчанию через порт номер 80. URL-адреса, использующие https
Схема требует, чтобы запросы и ответы выполнялись через безопасное соединение с веб-сайтом .
Интернационализированный URL-адрес
Пользователи Интернета разбросаны по всему миру, используют самые разные языки и алфавиты и ожидают, что смогут создавать URL-адреса на своих собственных местных алфавитах. Интернационализированный идентификатор ресурса (IRI) — это форма URL-адреса, включающая Юникода символы . Все современные браузеры поддерживают IRI. Части URL-адреса, требующие особого обращения для разных алфавитов, — это имя домена и путь. [18] [19]
Доменное имя в IRI известно как интернационализированное доменное имя (IDN). Программное обеспечение для Интернета и Интернета автоматически преобразует доменное имя в punycode, который может использоваться системой доменных имен ; например, китайский URL http://例子.卷筒纸
становится http://xn--fsqu00a.xn--3lr804guic/
. xn--
указывает, что символ изначально не был ASCII . [20]
Имя URL-адреса также может быть указано пользователем в локальной системе записи. Если он еще не закодирован, он преобразуется в UTF-8 , а любые символы, не входящие в базовый набор символов URL, экранируются как шестнадцатеричные с использованием процентного кодирования ; например, японский URL http://example.com/引き割り.html
становится http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html
. Целевой компьютер декодирует адрес и отображает страницу. [18]
URL-адреса, относящиеся к протоколу
Ссылки, относящиеся к протоколу (PRL), также известные как URL-адреса, относящиеся к протоколу (PRURL), — это URL-адреса, для которых не указан протокол. Например, //example.com
будет использовать протокол текущей страницы, обычно HTTP или HTTPS. [21] [22]
См. также
- Гиперссылка
- PURL – постоянный URL-адрес
- КЮРИ (компактный URI)
- URI фрагмента
- Поиск интернет-ресурсов (IRL)
- Интернационализированный идентификатор ресурса (IRI)
- Очистить URL-адрес
- Тайпсквоттинг
- Единый идентификатор ресурса
- Нормализация URI
- Использование косой черты в сети
Примечания
- ^ URL-адрес подразумевает средство доступа к указанному ресурсу и обозначается протоколом или механизмом доступа, что верно не для каждого URI. [5] [4] Таким образом
http://www.example.com
является URL-адресом, аwww.example.com
нет. [6] - ^ Процедуры регистрации новых схем URI были первоначально определены в 1999 году RFC 2717 и теперь определяются RFC 7595 , опубликованный в июне 2015 года. [14]
- ^ Для URI, относящихся к ресурсам во Всемирной паутине, некоторые веб-браузеры позволяют
.0
части десятично-точечной записи, которые следует отбросить, или использовать необработанные целые IP-адреса. [15] - ^ Исторический RFC 1866 (устарел RFC 2854 ) призывает авторов CGI поддерживать ';' в дополнение к '&'. [17] : §8.2.1
Цитаты
- ^ W3C (2009) .
- ^ «Вперед и обратная косая черта в URL-адресах» . zzz.buzz . Архивировано из оригинала 04 сентября 2018 г. Проверено 19 сентября 2018 г.
- ^ RFC 3986 (2005) .
- ^ Jump up to: а б Объединенная группа по планированию URI W3C/IETF (2002 г.) .
- ^ RFC 2396 (1998) .
- ^ Мисслер, Дэниел. «Разница между URL-адресами и URI» . Архивировано из оригинала 17 марта 2017 г. Проверено 16 марта 2017 г.
- ^ Jump up to: а б W3C (1994) .
- ^ IETF (1992) .
- ^ Jump up to: а б Бернерс-Ли (2015) .
- ^ Новости BBC (2009) .
- ^ Бернерс-Ли, Тим ; Коннолли, Дэниел «Дэн» (март 1993 г.). Язык гипертекстовой разметки (проект RFCxxx) (Технический отчет). п. 28. Архивировано из оригинала 23 октября 2017 г. Проверено 23 октября 2017 г.
- ^ Бернерс-Ли, Тим ; Масинтер, Ларри ; МакКахилл, Марк Перри (октябрь 1994 г.). Единые указатели ресурсов (URL) (Технический отчет). (Этот Интернет-проект был опубликован как предлагаемый стандарт RFC, RFC 1738 (1994 г.) ). Цитируется в Анг, CS; Мартин, округ Колумбия (январь 1995 г.). Компонентный интерфейс++ (Технический отчет). Библиотека UCSF и Центр управления знаниями. Архивировано из оригинала 23 октября 2017 г. Проверено 23 октября 2017 г.
- ^ Jump up to: а б с д Т. Бернерс-Ли ; Р. Филдинг ; Л. Масинтер (январь 2005 г.). Единый идентификатор ресурса (URI): общий синтаксис . Сетевая рабочая группа. дои : 10.17487/RFC3986 . СТД 66. RFC 3986 . Интернет-стандарт 66. Устарел. RFC 2732, 2396 and 1808. Updated by RFC 6874, 7320 and 8820. Updates РФК 1738 .
- ^ Хансен, Тони; Харди, Тед (июнь 2015 г.). Талер, Дэйв (ред.). Рекомендации и процедуры регистрации для схем URI . Рабочая группа по интернет-инжинирингу . дои : 10.17487/RFC7595 . ISSN 2070-1721 . BCP 35. RFC 7595 . Лучшая современная практика. Обновлено RFC 8615. Obsoletes РФК 4395 .
- ^ Лоуренс (2014) .
- ^ Т. Бернерс-Ли ; Р. Филдинг ; Л. Масинтер (август 1998 г.). Единые идентификаторы ресурсов (URI): общий синтаксис . Сетевая рабочая группа. дои : 10.17487/RFC2396 . РФК 2396 . Устаревший. Устарело RFC 3986. Updated by RFC 2732. Updates RFC 1808 и 1738 .
- ^ Бернерс-Ли, Тим ; Коннолли, Дэниел В. (ноябрь 1995 г.). Язык разметки гипертекста — 2.0 . Сетевая рабочая группа. дои : 10.17487/RFC1866 . РФК 1866 . Исторический. Устарело РФК 2854 .
- ^ Jump up to: а б W3C (2008) .
- ^ W3C (2014) .
- ^ IANA (2003) .
- ^ Глейзер, доктор медицинских наук (10 марта 2014 г.). Безопасная разработка мобильных приложений: как проектировать и кодировать безопасные мобильные приложения с помощью PHP и JavaScript (1-е изд.). ЦРК Пресс . п. 193. ИСБН 978-1-48220903-7 . Проверено 12 октября 2015 г.
- ^ Шафер, Стивен М. (2011). Библия HTML, XHTML и CSS (1-е изд.). Джон Уайли и сыновья . п. 124. ИСБН 978-1-11808130-3 . Проверено 12 октября 2015 г.
Ссылки
- «Бернерс-Ли «извините» за косые черты» . Новости Би-би-си . 14 октября 2009 г. Архивировано из оригинала 5 июня 2020 г. Проверено 14 февраля 2010 г.
- «Живые документы Протоколы BoF» . Консорциум Всемирной паутины . 18 марта 1992 г. Архивировано из оригинала 22 ноября 2012 г. Проверено 26 декабря 2011 г.
- Бернерс-Ли, Тим (21 марта 1994 г.). «Унифицированные указатели ресурсов (URL): синтаксис для выражения информации о доступе к объектам в сети» . Консорциум Всемирной паутины . Архивировано из оригинала 9 сентября 2015 г. Проверено 13 сентября 2015 г.
- Бернерс-Ли, Тим ; Масинтер, Ларри ; МакКахилл, Марк Перри (декабрь 1994 г.). Единые указатели ресурсов (URL) . дои : 10.17487/RFC1738 . РФК 1738 . Проверено 31 августа 2015 г.
- Бернерс-Ли, Тим (2015) [2000]. «Почему //, # и т. д.?» . Часто задаваемые вопросы . Консорциум Всемирной паутины . Архивировано из оригинала 14 мая 2020 г. Проверено 3 февраля 2010 г.
- Коннолли, Дэниел «Дэн» ; Сперберг-МакКуин, К. Майкл , ред. (21 мая 2009 г.). «Веб-адреса в HTML 5» . Консорциум Всемирной паутины . Архивировано из оригинала 10 июля 2015 г. Проверено 13 сентября 2015 г.
- IANA (14 февраля 2003 г.). «Завершение выбора префикса IDNA IANA» . Список рассылки IETF-Announce . Архивировано из оригинала 8 декабря 2004 г. Проверено 3 сентября 2015 г.
- Бернерс-Ли, Тим ; Коннолли, Дэниел «Дэн» (ноябрь 1995 г.). «Язык гипертекстовой разметки – 2.0» . Трекер данных IETF . Рабочая группа по интернет-инжинирингу . сек. 8.2.1. дои : 10.17487/RFC1866 . S2CID 6628570 . РФК 1866 . Проверено 13 сентября 2015 г.
- Бернерс-Ли, Тим ; Филдинг, Рой Т .; Масинтер, Ларри (август 1998 г.). Единые идентификаторы ресурсов (URI): общий синтаксис . дои : 10.17487/RFC2396 . РФК 2396 . Проверено 31 августа 2015 г.
- Хансен, Тони; Харди, Тед (июнь 2015 г.). Талер, Дэйв (ред.). Рекомендации и процедуры регистрации для схем URI . дои : 10.17487/RFC7595 . РФК 7595 .
- Миллинг, Майкл ; Дененберг, Рэй, ред. (август 2002 г.). Отчет Объединенной группы по планированию URI W3C/IETF: Единые идентификаторы ресурсов (URI), URL-адреса и унифицированные имена ресурсов (URN): разъяснения и рекомендации . дои : 10.17487/RFC3305 . РФК 3305 . Проверено 13 сентября 2015 г.
- Бернерс-Ли, Тим ; Филдинг, Рой Т .; Масинтер, Ларри (январь 2005 г.). Единые идентификаторы ресурсов (URI): общий синтаксис . дои : 10.17487/RFC3986 . РФК 3986 . Проверено 31 августа 2015 г.
- Бернерс-Ли, Тим ; Филдинг, Рой Т .; Масинтер, Ларри (январь 2005 г.). «Компоненты синтаксиса» . Единые идентификаторы ресурсов (URI): общий синтаксис . сек. 3. дои : 10.17487/RFC3986 . РФК 3986 . Проверено 31 августа 2015 г.
- «Введение в многоязычные веб-адреса» . 09.05.2008. Архивировано из оригинала 05 января 2015 г. Проверено 11 января 2015 г.
- Филипп, А. (2014). «Что происходит с «международными URL-адресами» » . Консорциум Всемирной паутины . Архивировано из оригинала 17 февраля 2015 г. Проверено 11 января 2015 г.
- Лоуренс, Эрик (6 марта 2014 г.). «Тайны браузера: IP-литералы в URL-адресах» . Microsoft Learn . Архивировано из оригинала 22 июня 2020 г. Проверено 22 июня 2020 г.
Внешние ссылки
- Спецификация URL-адреса на WHATWG
- Разделитель URL-адресов , который разбивает любой URI на части.