URL

Веб-адрес определенного файла или страницы

URL
Единый локатор ресурсов
АббревиатураURL
СтатусОпубликовано
Впервые опубликовано1994 ; 31 год назад ( 1994 )
Последняя версияУровень жизни
2023
ОрганизацияЦелевая группа по инжинирингу Интернета (IETF)
КомитетРабочая группа по технологиям веб-гипертекстовых приложений (WHATWG)
РядЗапрос комментариев (RFC)
РедакторыЭнн ван Кестерен
АвторыТим Бернерс-Ли
Базовые стандарты
  • RFC  1738. – Унифицированные указатели ресурсов (URL).
  • RFC  3986. – Унифицированный идентификатор ресурса (URI): общий синтаксис.
  • RFC  4248. – Схема URI telnet.
  • RFC  4266. – Схема URI gopher.
  • RFC  6068. – Схема URI «mailto».
  • RFC  6196. – Перемещение почтового сервера: схема URI в историческую.
  • RFC  6270. – Схема URI «tn3270».
Сопутствующие стандартыURI , URN
ДоменВсемирная паутина
ЛицензияCC BY 4.0
Веб-сайтurl.spec.whatwg.org

Единый указатель ресурса ( URL ), в разговорной речи известный как адрес в Интернете , [1] представляет собой ссылку на ресурс , которая определяет его местоположение в компьютерной сети и механизм его получения. URL — это особый тип унифицированного идентификатора ресурса (URI), [2] [3] хотя многие люди используют эти два термина как взаимозаменяемые. [4] [a] 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 Living Documents birds of a feather в 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] В своей книге Weaving the Web Бернерс-Ли подчеркивает свое предпочтение изначальному включению в расширение слова «универсальный», а не слова «единообразный», на которое оно было позже заменено, и дает краткий отчет о споре, который привел к изменению.

Синтаксис

Каждый HTTP URL соответствует синтаксису универсального URI. Универсальный синтаксис URI состоит из пяти компонентов , организованных иерархически в порядке убывания значимости слева направо: [13] : §3 

URI = схема ":" ["//" полномочия] путь ["?" запрос] ["#" фрагмент]

Компонент не определен , если он имеет связанный разделитель и разделитель не отображается в URI; компоненты схемы и пути всегда определены. [13] : §5.2.1  Компонент пуст, если он не имеет символов; компонент схемы всегда непустой. [13] : §3 

Компонент полномочий состоит из подкомпонентов :

полномочия = [userinfo "@"] хост [":" порт]

На синтаксической диаграмме это представлено следующим образом:

Диаграмма синтаксиса URI

URI включает в себя:

  • Непустойкомпонент схемы , за которым следует двоеточие (:), состоящее из последовательности символов, начинающихся с буквы и сопровождаемых любой комбинацией букв, цифр, плюса (+), точки (.) или дефиса (-). Хотя схемы нечувствительны к регистру, каноническая форма — строчные буквы, и документы, в которых указаны схемы, должны делать это строчными буквами. Примерами популярных схем являютсяhttp,https,ftp,mailto,file,dataиirc. Схемы URI должны быть зарегистрированы вInternet Assigned Numbers Authority (IANA), хотя на практике используются и незарегистрированные схемы.[b]
  • НеобязательныйКомпонент полномочий , которому предшествуют две косые черты (//), включает в себя:
    • НеобязательныйПодкомпонент userinfo , за которым следует символ at (@), который может состоять изимени пользователяи необязательногопароля, которому предшествует двоеточие (:). Использование форматаusername:passwordв подкомпоненте userinfo устарело по соображениям безопасности. Приложения не должны отображать как открытый текст любые данные после первого двоеточия (:), найденные в подкомпоненте userinfo, если только данные после двоеточия не являются пустой строкой (указывающей на отсутствие пароля).
    • АПодкомпонент хоста , состоящий из зарегистрированного имени (включая, но не ограничиваясь, именемхоста) илиIP-адреса.IPv4должны быть вдесятичной нотации с точками, аIPv6должны быть заключены в скобки ([]).[13] : §3.2.2  [c]
    • НеобязательныйСубкомпонент порта , которому предшествует двоеточие (:), состоящий из десятичных цифр.
  • Акомпонент пути , состоящий из последовательности сегментов пути, разделенных косой чертой (/). Путь всегда определяется для URI, хотя определенный путь может быть пустым (нулевой длины). Сегмент также может быть пустым, что приводит к двум последовательным косым чертам (//) в компоненте пути. Компонент пути может напоминать или точно соответствоватьпути файловой системы, но не всегда подразумевает связь с ней. Если компонент полномочий определен, то компонент пути должен быть либо пустым, либо начинаться со слеша (/). Если компонент полномочий не определен, то путь не может начинаться с пустого сегмента, то есть с двух слешей (//), так как следующие символы будут интерпретироваться как компонент полномочий.[16] : §3.3 
По соглашению, в http и https URI последняя часть пути называетсяpathinfo и он необязателен. Он состоит из нуля или более сегментов пути, которые не ссылаются на существующее имя физического ресурса (например, файл, внутренняя модульная программа или исполняемая программа), а на логическую часть (например, команда или часть квалификатора), которая должна быть передана отдельно в первую часть пути, которая идентифицирует исполняемый модуль или программу, управляемую веб-сервером;это часто используется для выбора динамического содержимого (документа и т. д.) или для его адаптации в соответствии с запросом (см. также:CGIи PATH_INFO и т. д.).
Пример:
URI-адрес:"http://www.example.com/questions/3456/my-document"
где: "/questions"— первая часть пути ( исполняемый модуль или программа), а "/3456/my-document"— вторая часть пути с именем pathinfo , которая передается исполняемому модулю или программе с именем "/questions"для выбора запрошенного документа.
URI http или https, содержащий часть pathinfo без части запроса, также может называться « чистым URL », последняя часть которого может быть « слагом ».
Разделитель запросовПример
Амперсанд ( &)key1=value1&key2=value2
Точка с запятой ( ;) [d]key1=value1;key2=value2
  • Необязательныйкомпонент запроса , которому предшествует вопросительный знак (?), состоящий изстроки запросанеиерархических данных. Его синтаксис не очень хорошо определен, но по соглашению чаще всего представляет собой последовательностьпар атрибут-значение,разделенныхразделителем.
  • Необязательныйкомпонент фрагмента , которому предшествуетрешетка(#). Фрагмент содержитидентификатор фрагмента,указывающий направление к вторичному ресурсу, такому как заголовок раздела в статье, идентифицированной оставшейся частью URI. Когда первичный ресурс — этоHTML-документ, фрагмент часто являетсяidатрибутомопределенного элемента, и веб-браузеры прокручивают этот элемент в поле зрения.

Веб-браузер обычно разыменовывает URL-адрес, выполняя HTTP- запрос к указанному хосту, по умолчанию на порту номер 80. URL-адреса, использующие эту httpsсхему, требуют, чтобы запросы и ответы выполнялись через защищенное соединение с веб-сайтом .

Интернационализированный URL-адрес

Пользователи Интернета распределены по всему миру, используя широкий спектр языков и алфавитов, и ожидают, что смогут создавать URL-адреса на своих собственных локальных алфавитах. Интернационализированный идентификатор ресурса (IRI) — это форма URL-адреса, включающая символы Unicode . Все современные браузеры поддерживают 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]

Смотрите также

Примечания

  1. ^ URL подразумевает средства доступа к указанному ресурсу и обозначается протоколом или механизмом доступа, что не относится к каждому URI. [5] [4] Таким образом, http://www.example.comявляется URL, а www.example.comне является. [6]
  2. ^ Процедуры регистрации новых схем URI были первоначально определены в 1999 году в RFC  2717, а теперь определены в RFC 7595, опубликованном в июне 2015 года. [14]
  3. ^ Для URI, относящихся к ресурсам Всемирной паутины, некоторые веб-браузеры позволяют .0опускать части точечно-десятичной записи или использовать необработанные целочисленные IP-адреса. [15]
  4. ^ Исторический RFC  1866 (устаревший с появлением RFC 2854) призывает авторов CGI поддерживать «;» в дополнение к «&». [17] : §8.2.1 

Цитаты

  1. ^ W3C (2009).
  2. ^ "Прямая и обратная косая черта в URL-адресах". zzz.buzz . Архивировано из оригинала 2018-09-04 . Получено 2018-09-19 .
  3. ^ RFC 3986 (2005).
  4. ^ ab Совместная группа W3C/IETF по планированию URI (2002).
  5. ^ RFC 2396 (1998).
  6. ^ Мисслер, Дэниел. "Разница между URL и URI". Архивировано из оригинала 2017-03-17 . Получено 2017-03-16 .
  7. ^ ab W3C (1994).
  8. ^ IETF (1992).
  9. ^ ab Бернерс-Ли (2015).
  10. BBC News (2009).
  11. ^ Бернерс-Ли, Тим ; Коннолли, Дэниел «Дэн» (март 1993 г.). Язык разметки гипертекста (черновик RFCxxx) (технический отчет). стр. 28. Архивировано из оригинала 2017-10-23 . Получено 2017-10-23 .
  12. ^ Бернерс-Ли, Тим ; Масинтер, Ларри ; МакКахилл, Марк Перри (октябрь 1994 г.). Унифицированные указатели ресурсов (URL) (технический отчет).(Этот интернет-проект был опубликован как предлагаемый стандартный RFC, RFC 1738 (1994)) Цитируется в Ang, CS; Martin, DC (январь 1995 г.). Constituent Component Interface++ (технический отчет). Библиотека и Центр управления знаниями UCSF. Архивировано из оригинала 23.10.2017 . Получено 23.10.2017 .
  13. ^ abcd T. Berners-Lee ; R. Fielding ; L. Masinter (январь 2005 г.). Единый идентификатор ресурса (URI): общий синтаксис. Сетевая рабочая группа. doi : 10.17487/RFC3986 . STD 66. RFC 3986. Стандарт Интернета 66. Отменяет RFC 2732, 2396 и 1808. Обновлен RFC 6874, 7320 и 8820. Обновляет RFC 1738.
  14. ^ Хансен, Тони; Харди, Тед (июнь 2015 г.). Талер, Дэйв (ред.). Руководящие принципы и процедуры регистрации для схем URI. Internet Engineering Task Force . doi : 10.17487/RFC7595 . ISSN  2070-1721. BCP 35. RFC 7595. Лучшая текущая практика 35. Обновлено RFC 8615. Отменяет RFC 4395.
  15. ^ Лоуренс (2014).
  16. ^ T. Berners-Lee ; R. Fielding ; L. Masinter (август 1998 г.). Единые идентификаторы ресурсов (URI): общий синтаксис. Сетевая рабочая группа. doi : 10.17487/RFC2396 . RFC 2396. Устарело. Устарело по RFC 3986. Обновлено по RFC 2732. Обновления RFC 1808 и 1738.
  17. ^ Бернерс-Ли, Тим ; Коннолли, Дэниел В. (ноябрь 1995 г.). Язык разметки гипертекста - 2.0. Сетевая рабочая группа. doi : 10.17487/RFC1866 . RFC 1866. Историческое. Устарело согласно RFC 2854.
  18. ^ ab W3C (2008).
  19. ^ W3C (2014).
  20. ^ IANA (2003).
  21. ^ Glaser, JD (2014-03-10). Безопасная разработка мобильных приложений: как проектировать и кодировать безопасные мобильные приложения с помощью PHP и JavaScript (1-е изд.). CRC Press . стр. 193. ISBN 978-1-48220903-7. Получено 12 октября 2015 г.
  22. ^ Шефер, Стивен М. (2011). HTML, XHTML и CSS Bible (1-е изд.). John Wiley & Sons . стр. 124. ISBN 978-1-11808130-3. Получено 12 октября 2015 г.

Ссылки

  • «Бернерс-Ли «извините» за косые черты». BBC News . 2009-10-14. Архивировано из оригинала 2020-06-05 . Получено 2010-02-14 .
  • "Living Documents BoF Minutes". Консорциум Всемирной паутины . 1992-03-18. Архивировано из оригинала 2012-11-22 . Получено 2011-12-26 .
  • Бернерс-Ли, Тим (1994-03-21). "Uniform Resource Locators (URL): A Syntax for the Expression of Access Information of Objects on the Network". World Wide Web Consortium . Архивировано из оригинала 2015-09-09 . Получено 2015-09-13 .
  • Бернерс-Ли, Тим ; Масинтер, Ларри ; МакКахилл, Марк Перри (декабрь 1994 г.). Унифицированные указатели ресурсов (URL). doi : 10.17487/RFC1738 . RFC 1738. Получено 31 августа 2015 г.
  • Бернерс-Ли, Тим (2015) [2000]. "Почему //, # и т. д.?". Часто задаваемые вопросы . Консорциум Всемирной паутины . Архивировано из оригинала 2020-05-14 . Получено 2010-02-03 .
  • Connolly, Daniel "Dan" ; Sperberg-McQueen, C. Michael , ред. (2009-05-21). "Веб-адреса в HTML 5". World Wide Web Consortium . Архивировано из оригинала 2015-07-10 . Получено 2015-09-13 .
  • IANA (2003-02-14). "Завершение выбора префикса IDNA IANA". Рассылка IETF-Announce . Архивировано из оригинала 2004-12-08 . Получено 2015-09-03 .
  • Бернерс-Ли, Тим ; Коннолли, Дэниел "Дэн" (ноябрь 1995 г.). "Язык гипертекстовой разметки – 2.0". IETF Datatracker . Internet Engineering Task Force . sec. 8.2.1. doi : 10.17487/RFC1866 . S2CID  6628570. RFC 1866 . Получено 13 сентября 2015 г. .
  • Бернерс-Ли, Тим ; Филдинг, Рой Т.; Масинтер , Ларри (август 1998 г.). Унифицированные идентификаторы ресурсов (URI): общий синтаксис. doi : 10.17487/RFC2396 . RFC 2396. Получено 31 августа 2015 г.
  • Хансен, Тони; Харди, Тед (июнь 2015 г.). Талер, Дэйв (ред.). Руководящие принципы и процедуры регистрации для схем URI. doi : 10.17487/RFC7595 . RFC 7595.
  • Mealling, Michael ; Denenberg, Ray, ред. (август 2002 г.). Отчет Объединенной группы W3C/IETF по планированию URI: унифицированные идентификаторы ресурсов (URI), URL-адреса и унифицированные имена ресурсов (URN): разъяснения и рекомендации. doi : 10.17487/RFC3305 . RFC 3305 . Получено 13 сентября 2015 г.
  • Бернерс-Ли, Тим ; Филдинг, Рой Т.; Масинтер , Ларри (январь 2005 г.). Унифицированные идентификаторы ресурсов (URI): общий синтаксис. doi : 10.17487/RFC3986 . RFC 3986. Получено 31 августа 2015 г.
  • Бернерс-Ли, Тим ; Филдинг, Рой Т .; Масинтер, Ларри (январь 2005 г.). «Компоненты синтаксиса». Универсальные идентификаторы ресурсов (URI): универсальный синтаксис. раздел 3. doi : 10.17487/RFC3986 . RFC 3986. Получено 31 августа 2015 г.
  • "Введение в многоязычные веб-адреса". 2008-05-09. Архивировано из оригинала 2015-01-05 . Получено 2015-01-11 .
  • Филлип, А. (2014). «Что происходит с «международными URL-адресами»». Консорциум Всемирной паутины . Архивировано из оригинала 2015-02-17 . Получено 2015-01-11 .
  • Лоуренс, Эрик (2014-03-06). "Browser Arcana: IP Literals in URLs". Microsoft Learn . Архивировано из оригинала 2020-06-22 . Получено 2020-06-22 .
  • Спецификация URL на WHATWG
  • Разделитель URL, который разделяет любой URI на части
Получено с "https://en.wikipedia.org/w/index.php?title=URL&oldid=1230124093"