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-шлях
уточнююча інформація про місце знаходження ресурсу; залежить від протоколу.
параметри
рядок запиту з переданими на сервер (методом GET) параметрами. Роздільник параметрів - знак
&. Приклад:? Параметр_1 = значення_1 & параметр_2 = значення_2 & параметр3 = значення_3
якоря
ідентифікатор «якоря», що посилається на деяку частину (розділ) відкривається документа. На сьогоднішній день Тім Бернес-Лі визнає, що символ подвійної косої риси у структурі URL є надлишковим.

Схеми (протоколи) 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 символів кодується у такому відповідно: