URL

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

Единый указатель ресурсов (англ. URL — Uniform Resource Locator) — единообразный локатор (определитель местонахождения) ресурса. По‐английски «URL» целиком произносится как /ɜː(ɹ)l/, по‐русски чаще говорят [у-эр-э́л], [ю-эр-эл] или [урл] (сленг). Ранее назывался Universal Resource Locator — универсальный локатор ресурса. URL — это стандартизированный способ записи адреса ресурса в сети Интернет.

История

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

Структура URL

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

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>

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

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

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

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

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

  • ftp — Протокол передачи файлов FTP
  • http — Протокол передачи гипертекста HTTP
  • https — Специальная реализация протокола HTTP, использующая шифрование (как правило, SSL или TLS)
  • gopher — Протокол Gopher
  • mailto — Адрес электронной почты
  • news — Новости Usenet
  • nntp — Новости Usenet через протокол NNTP
  • irc — Протокол IRC
  • prospero — Служба каталогов Prospero Directory Service
  • telnet — Ссылка на интерактивную сессию Telnet
  • wais — База данных системы WAIS
  • xmpp — Протокол XMPP (часть Jabber)
  • file — Имя локального файла
  • data — Непосредственные данные (Data: URL)

Экзотические схемы 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

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

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

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

http://ru.wikipedia.org/wiki/Микрокредит

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

http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82

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

М → D0 и 9C → %D0%9C
и → D0 и B8 → %D0%B8
к → D0 и BA → %D0%BA
р → D1 и 80 → %D1%80, и т. д.

Перед каждым таким шестнадцатеричным кодом байта, согласно спецификации URL[2], ставится знак процента (%) — отсюда даже возник английский термин «percent‐encoding», обозначающий способ кодирования символов в URL и URI.

Иные распространённые, но недопустимые в URL символы кодируются в таком соответствии:

" #[3] % &[3] ' * ,[3] :[3] ;[3] < > ?[3] [ ] ^ ` { | } <пробел>
%22 %23 %25 %26 %27 %2a %2c %3a %3b %3c %3e %3f %5b %5d %5e %60 %7b %7c %7d %20[4]

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

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

Инициатива PURL

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

Примеры URL

http://ru.wikipedia.org/wiki/URL
http://en.wikipedia.org:80/wiki/Special:Search?search=train&go=Go 
ftp://myname:mypass@myhost.com:21/etc/motd
prospero://myhost.dom//pros/somename
file://vms.myhost.edu/disk$user/my/notes/note123.txt

См. также

Примечания

  1. Создатель Интернета признал ошибку
  2. RFC 2396 часть 2.
  3. 3,0 3,1 3,2 3,3 3,4 3,5 Символ допустим, но при указании прямым текстом несёт специальное синтаксическое значение
  4. Следует отметить, что MediaWiki избегает кодирования пробела как %20, вместо этого он везде заменяется символом подчёркивания «_». Многие поисковики заменяют пробел на символ «+».

Ссылки

af:Uniform Resource Locator als:URL ar:عنوان إنترنت az:URL be-x-old:URL bg:Унифициран локатор на ресурси ca:Uniform Resource Locator cs:Uniform Resource Locator cv:URL cy:URL da:URL de:Uniform Resource Locator el:Uniform Resource Locator en:Uniform Resource Locator eo:URL es:Localizador uniforme de recursos et:Internetiaadress eu:Uniform Resource Locator fa:نشانی اینترنتی fr:Uniform Resource Locator ga:Aimsitheoir aonfhoirmeach acmhainne gl:URL he:URL hr:URL hu:Webcím ia:Uniform Resource Locator id:URL is:Netslóð it:Uniform Resource Locator ja:Uniform Resource Locator kk:URL km:URL kn:ಯು.ಆರ್.ಎಲ್ ko:URL lb:Uniform Resource Locator lv:Vienotais resursu vietrādis ms:URL nl:Uniform Resource Locator nn:Uniform Resource Locator no:Uniform Resource Locator pl:Uniform Resource Locator pt:URL ro:Uniform Resource Locator simple:Uniform Resource Locator sk:Uniform Resource Locator sl:URL sr:Веб адреса sv:Uniform Resource Locator tg:URL th:ยูอาร์แอล tr:URL uk:Уніфікований локатор ресурсів ur:یکساں وسیلی تعینگر vi:URL yo:Uniform Resource Locator zh:统一资源定位符 zh-yue:URL