URL

Расположение URL в браузере

Uniform Resource Locator (сокр. URL [ˌjuː ɑːr ˈel]; с англ. — «единообразный указатель местонахождения ресурса») — адрес ресурса в сети Интернет. Стандарт URL регулируется организацией IETF. URL как формат адреса ресурса был изобретён Тимом Бернерсом-Ли в 1990 году в стенах Европейского совета по ядерным исследованиям, и стал фактической основой для создания Всемирной паутины. Первое упоминание URL в документе IETF "UDI (Universal Document Identifiers) BOF" появляется в июле 1992 года, тогда же в IETF была создана рабочая группа по URL/URI, а зафиксирован стандарт URL был в декабре 1994 года в документе "Uniform Resource Locators (URL)" (RFC 1738). Сейчас URL позиционируется как часть более широкой системы адресации URI и регулируется документом, определяющим URI (RFC 3986).

В России употребление URL в официальных документах регулируется ГОСТ Р 7.0.5-2008 «Библиографическая ссылка. Общие требования и правила составления».

## Содержание

* 1 История
* 2 Структура URL
* 2.1 схема
* 2.2 логин
* 2.3 пароль
* 2.4 хост
* 2.5 порт
* 2.6 URL-путь
* 2.7 параметры
* 2.8 якорь
* 3 Схемы (протоколы) URL
* 4 Кодирование URL
* 4.1 Реализация
* 4.2 Стандарт IRI
* 5 Ограничение длины
* 6 Инициатива PURL
* 7 См. также
* 8 Примечания
* 9 Ссылки

## История

[править | править код]

URL был изобретён Тимом Бернерсом-Ли в 1990 году в стенах Европейского совета по ядерным исследованиям (фр. Conseil Européen pour la Recherche Nucléaire, CERN) в Женеве, Швейцария. URL стал фундаментальной инновацией в Интернете. Изначально URL предназначался для обозначения мест расположения ресурсов (чаще всего файлов) во Всемирной паутине. Сейчас URL применяется для обозначения адресов почти всех ресурсов Интернета. Стандарт URL закреплён в документе RFC 3986. Сейчас URL позиционируется как часть более общей системы идентификации ресурсов URI, сам термин URL постепенно уступает место более широкому термину URI. Стандарт URL регулируется организацией IETF и её подразделениями.

В 2009 году Тим Бернерс-Ли высказал мнение об избыточности двойного слеша `//` в начале URL, после указания сетевого протокола[1][2].

## Структура URL

[править | править код]

URL был разработан как система для максимально естественного указания на местонахождения ресурсов в сети. Локатор должен был быть легко расширяемым и использовать лишь ограниченный набор ASCII‐символов (к примеру, в URL никогда не применяется пробел). В связи с этим возникла следующая традиционная форма записи URL:

`<схема>:[//[<логин>[:<пароль>]@]<хост>[:<порт>]][/<URL‐путь>][?<параметры>][#<якорь>]`

В этой записи:

###### схема

[править | править код]

схема обращения к ресурсу; в большинстве случаев имеется в виду сетевой протокол

###### логин

[править | править код]

имя пользователя, используемое для доступа к ресурсу

###### пароль

[править | править код]

пароль указанного пользователя

###### хост

[править | править код]

полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста в форме четырёх групп десятичных чисел, разделённых точками; числа — целые в интервале от 0 до 255.

###### порт

[править | править код]

порт хоста для подключения

###### URL-путь

[править | править код]

уточняющая информация о месте нахождения ресурса; зависит от протокола.

###### параметры

[править | править код]

строка запроса с передаваемыми на сервер (методом GET) параметрами. Начинается с символа `?`, разделитель параметров — знак `&`. Пример: `?параметр_1=значение_1&параметр_2=значение_2&параметр3=значение_3`

###### якорь

[править | править код]

идентификатор «якоря»[англ.] с предшествующим символом `#`. Якорем может быть указан заголовок внутри документа или атрибут id[англ.] элемента. По такой ссылке браузер откроет страницу и переместит окно к указанному элементу. Например, ссылка на этот раздел статьи: `https://ru.wikipedia.org/wiki/URL#Структура_URL`.

## Схемы (протоколы) URL

[править | править код]

В разделе не хватает ссылок на источники (см. рекомендации по поиску).

Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (8 сентября 2016)

|

Общепринятые схемы (протоколы) URL включают:

* ftp — протокол передачи файлов FTP
* http — протокол передачи гипертекста HTTP
* rtmp — проприетарный протокол потоковой передачи данных Real Time Messaging Protocol, в основном используется для передачи потокового видео и аудио с веб-камер через Интернет
* rtsp — потоковый протокол реального времени
* sip — протокол установления сеансов мультимедиа SIP
* https — специальная реализация протокола HTTP, использующая шифрование (как правило, SSL или TLS)
* gopher — протокол Gopher
* mailto — адрес электронной почты
* news — новости Usenet
* nntp — новости Usenet через протокол NNTP
* irc — протокол IRC
* smb — протокол SMB/CIFS
* prospero — служба каталогов Prospero Directory Service
* telnet — ссылка на интерактивную сессию Telnet
* wais — база данных системы WAIS
* xmpp — протокол XMPP (часть Jabber)
* file — имя локального файла
* data — непосредственные данные (Data: URL)
* tel — звонок по указанному телефону

Экзотические схемы URL:

* afs — глобальное имя файла в файловой системе Andrew File System
* cid — идентификатор содержимого для частей MIME
* mid — идентификатор сообщений для электронной почты
* mailserver — доступ к данным с почтовых серверов
* nfs — имя файла в сетевой файловой системе NFS
* tn3270 — эмуляция интерактивной сессии Telnet 3270
* z39.50 — доступ к службам ANSI Z39.50
* skype — протокол Skype
* smsto — открытие редактора SMS в некоторых мобильных телефонах
* ed2k — файлообменная сеть eDonkey, построенная по принципу P2P
* market — Android-маркет
* steam — протокол Steam
* sips — протокол установления сеансов мультимедиа SIP через TLS
* bitcoin — криптовалюта Биткойн
* ob — OpenBazaar
* tg — Telegram

Схемы URL в браузерах:

* view-source — просмотр исходного кода указанной веб-страницы в различных браузерах.
* В разных браузерах используются разные ключевые слова для доступа к служебным и сервисным страницам:
* chrome в браузере Google Chrome и других браузерах на движке Chromium[3];
* about в Firefox и других браузерах на движке Gecko;
* opera в Opera;
* edge в Microsoft Edge;
* browser в Яндекс.Браузер.

Схемы URI

Официальные|

* aaa
* aaas
* about
* acap
* cap
* cid
* crid
* data
* dav
* dict
* dns
* fax
* file
* ftp
* geo
* go
* gopher
* h323
* http
* https
* im
* imap
* iri
* ldap
* mailto
* mid
* news
* nfs
* nntp
* pop
* pres
* rtsp
* sip
* sips
* snmp
* tel
* telnet
* urn
* url
* view-source
* wais
* xmpp

Неофициальные|

* aim
* bolo
* btc
* bzr
* callto
* chrome
* cvs
* cs2d
* daap
* ed2k
* ed2kftp
* feed
* fish
* git
* gizmoproject
* iax2
* irc
* ircs
* itms
* lastfm
* ldaps
* magnet
* mms
* msnim
* psyc
* rsync
* secondlife
* skype
* ssh
* svn
* sftp
* smb
* sms
* soldat
* steam
* tg
* webcal
* xfire
* ymsgr

## Кодирование URL

[править | править код]

Стандарт URL использует набор символов US-ASCII. Это имеет серьёзный недостаток, поскольку разрешается использовать лишь латинские буквы, цифры и несколько знаков пунктуации. Все другие символы необходимо перекодировать. Например, перекодироваться должны буквы кириллицы, буквы с диакритическими знаками, лигатуры, иероглифы. Перекодирующая кодировка описана в стандарте RFC 3986 и называется URL-encoding, URLencoded или percent‐encoding.

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

https://ru.wikipedia.org/wiki/Википедия

кодируется как:

https://ru.wikipedia.org/wiki/Википедия

### Реализация

[править | править код]

Преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в UTF-8 в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении с предшествующим знаком процента (%):

В → D0 и 92 → В
и → D0 и B8 → и
к → D0 и BA → к
и → D0 и B8 → и, и т. д.

Зарезервированные символы[4] `!` | `*` | `'` | `(` | `)` | `;` | `:` | `@` | `&` | `=` | `+` | `$` | `,` | `/` | `?` | `#` | `[` | `]`

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Не зарезервированные символы[4] `A` | `B` | `C` | `D` | `E` | `F` | `G` | `H` | `I` | `J` | `K` | `L` | `M` | `N` | `O` | `P` | `Q` | `R` | `S` | `T` | `U` | `V` | `W` | `X` | `Y` | `Z`

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

`a` | `b` | `c` | `d` | `e` | `f` | `g` | `h` | `i` | `j` | `k` | `l` | `m` | `n` | `o` | `p` | `q` | `r` | `s` | `t` | `u` | `v` | `w` | `x` | `y` | `z`
`0` | `1` | `2` | `3` | `4` | `5` | `6` | `7` | `8` | `9` | `-` | `_` | `.` | `~` |

Все другие символы в URI кодируются.

Зарезервированные символы кодируются в таком соответствии:

!  | "  | #[5] | $  | %  | &[5] | ' | * | + | ,[5] | :[5] | ;[5] | < | =[5] | > | ?[5] | [ | ] | ^ | ` | { | | | } | <пробел>

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

! | " | # | $ | % | & | ' | * | + | , | : | ; | < | = | > | ? | [ | ] | ^  | ` | { | | | }  |  [6]

Кодирование параметров в Internet Explorer и старом Firefox происходит несколько иначе[7].

В некоторых случаях URL формируется с использованием кодирования Base58[8].

### Стандарт IRI

[править | править код]

Основная статья: Internationalized Resource Identifier

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

Это всё входит в противоречие с принципом интернационализма, провозглашаемого всеми ведущими организациями Интернета, включая W3C и ISOC. Эту проблему призван решить стандарт IRI (англ. Internationalized Resource Identifier) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые поэтому не ущемляли бы права других языков. Хотя заранее сложно сказать, смогут ли когда‐либо идентификаторы IRI заменить столь широко используемые URL (и URI в целом).

## Ограничение длины

[править | править код]

Формально, длина URL не ограничена, но браузеры имеют ограничения по длине URL. Не рекомендуется использовать URL длиной более 2048 символов, так как Microsoft Internet Explorer имеет именно такое ограничение[9].

## Инициатива PURL

[править | править код]

Ещё один кардинальный недостаток URL состоит в отсутствии гибкости. Ресурсы во Всемирной паутине и Интернете перемещаются, а ссылки в виде URL остаются, указывая на уже отсутствующие ресурсы. Это особенно болезненно для электронных библиотек, каталогов и энциклопедий. Для решения этой проблемы были предложены постоянные локаторы PURL (англ. Persistent Uniform Resource Locator). В сущности это те же URL, но они указывают не на конкретное место расположения ресурса, а на запись в базе данных PURL, где, в свою очередь, записан уже конкретный URL‐адрес ресурса. При обращении к PURL сервер находит нужную запись в этой базе данных и перенаправляет запрос уже на конкретное местоположение ресурса. Если адрес ресурса меняется, то нет нужды исправлять все бесчисленные ссылки на него — достаточно лишь изменить запись в БД. В настоящий момент эта идея не стандартизирована и не имеет широкого распространения.

## См. также

[править | править код]

* URN
* XRI
* Длинные доменные имена
* Человекопонятный URL
* Нормализация URL
* UTM-метки

## Примечания

[править | править код]

1. ↑ Двойной слеш в адресах интернета появился из-за спешки его создателя  (неопр.). РИА Новости (14 октября 2009). Дата обращения: 11 июля 2010. Архивировано 25 августа 2011 года.
2. ↑ Создатель интернета сожалеет о двойном слеше  (неопр.). 3DNews Daily Digital Digest (14 октября 2009). Дата обращения: 26 февраля 2020. Архивировано 26 февраля 2020 года.
3. ↑ The Chrome URL  (неопр.). Дата обращения: 9 декабря 2014. Архивировано 21 октября 2014 года.
4. ↑ 1 2 RFC 3986, раздел 2.2
5. ↑ 1 2 3 4 5 6 7 Символ допустим, но при указании прямым текстом несёт специальное синтаксическое значение
6. ↑ MediaWiki избегает кодирования пробела как , вместо этого он везде заменяется символом подчёркивания «_». Многие поисковики заменяют пробел на символ «+».
7. ↑ HTTP, RFC 3986 и браузеры
8. ↑ Flickr Services  (неопр.). Дата обращения: 19 сентября 2014. Архивировано 12 августа 2014 года.
9. ↑ Максимальная длина URL-адреса в Internet Explorer составляет 2083 символа  (неопр.). microsoft.com. Дата обращения: 10 мая 2015. Архивировано 15 ноября 2016 года.

## Ссылки

[править | править код]

* RFC 3986
* Кодирование URL

Ссылки на внешние ресурсы

Словари и энциклопедии

* Большая каталанская
* Большая китайская
* Большая норвежская
* Большая российская (научно-образовательный портал)
* Britannica (онлайн)
* De Agostini
* Treccani

В библиографических каталогах|

* GND: 4753514-3
* NKC: ph222874, ph158491