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

Единый указатель ресурса (англ. Uniform Resource Locator, URL) — это единообразный локатор (определитель местонахождения) ресурса.
Ранее URL назывался Universal Resource Locator — универсальный указатель ресурса. URL служит стандартизированным способом записи адреса ресурса в сети Интернет.

Структура URL

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

схема://логин:пароль@хост:порт/URL‐путь?параметры#якорь
Расшифровка записи:

  • схема — определяет тип интернет-сервиса (наиболее распространенным является HTTP или HTTPS)
  • логин — имя пользователя, используемое для доступа к ресурсу
  • пароль — пароль указанного пользователя
  • хост — полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста в форме четырёх групп десятичных чисел, разделённых точками (например, wm-school.ru)
  • порт — определяет номер порта на хосте (по умолчанию для HTTP является 80)
  • URL-путь — определяет путь на сервере (если пропущен: корневой каталог сайта)
  • параметры — строка запроса с передаваемыми на сервер (методом GET) параметрами. Начинается с символа ?, разделитель параметров — знак &. Пример: ?параметр_1=значение_1&параметр_2=значение_2&параметр_3=значение_3
  • якорь — идентификатор «якоря» с предшествующим символом диез #. Якорем может быть указан заголовок внутри документа или атрибут id элемента. По такой ссылке браузер откроет страницу и переместит окно к указанному элементу. Например, ссылка на этот раздел статьи: http://www.wm-school.ru/html/html_urlencode#Структура_URL.

Стандарт URL использует набор символов ASCII. Кодирование в URL заменяет небезопасные символы ASCII на символ "%" и следующие две шестнадцатеричные цифры соответствующего значения в наборе символов ISO-8859-1.
C момента своего изобретения и по сей день стандарт URL обладает серьёзным недостатком — в нём можно использовать только ограниченный набор символов: латинские буквы, цифры и лишь некоторые знаки пунктуации. Все другие символы необходимо перекодировать.
Например, перекодироваться должны буквы кириллицы, буквы с диакритическими знаками, лигатуры, иероглифы.
Перекодирующая кодировка называется URL-encoding, URLencoded или percent‐encoding.
URL-адреса не могут содержать пробелы. Кодирование URL-адрес, как правило заменяет каждый пробел знаком плюс (+), или %20. Символы кириллицы URL кодирование заменяет на соответствующие комбинации % и код символа.

Например, строка вида:

http:⁄⁄wm-school.ru/html/Кодировки

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

http:⁄⁄wm-school.ru/html/%d0%9a%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b8

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

К → D0 и 9C → %d0%9a
о → D0 и B8 → %d0%be
д → D0 и BA → %d0%b4
и → D1 и 80 → %d0%b8, и т. д.

URL-коды символов UTF-8 представлены в Таблице URL кодов символов UTF-8
URL-коды специальных управляющих символов таблицы ASCII (диапазон 00-31, плюс 127), символов ISO-Latin (диапазон 128-255), зарезервированных символов (знак доллара, амперсанд, плюс, слэш, двоеточие, точка с запятой, знак равенства, знак вопроса, знак эт (собака)), небезопасных символов (пробел, кавычки, знак меньше, знак больше, знак диез, знак проценты, фигурные скобки, прямой слэш, обратный слэш, тильда, квдратные скобки, гравис) представлены в Таблице символов кодирования URL


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

URL коды символов ACSII

URL коды символов UTF-8 диапазон от U+0400 до U+04FF

Таблица кодов символов кирилицы UTF-8

Таблица кодов символов Windows-1251