Кодировка URL


Кодирование URL , официально известное как процентное кодирование , представляет собой метод кодирования произвольных данных в унифицированный идентификатор ресурса (URI) с использованием только ограниченного количества символов US-ASCII , допустимых в URI. Хотя он известен как URL-кодирование , он также используется более широко в основном наборе унифицированных идентификаторов ресурсов (URI), который включает в себя как унифицированный указатель ресурса (URL), так и унифицированное имя ресурса (URN). Таким образом, он также используется при подготовке данных типа application/x-www-form-urlencoded media , как это часто используется при отправке данных формы HTML в HTTP.Запросы.

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

Когда символ из зарезервированного набора («зарезервированный символ») имеет особое значение («зарезервированное назначение») в определенном контексте, а схема URI говорит, что необходимо использовать этот символ для какой-либо другой цели , тогда символ должен быть закодирован в процентах . Процентное кодирование зарезервированного символа включает в себя преобразование символа в соответствующее ему значение байта в ASCII , а затем представление этого значения в виде пары шестнадцатеричных цифр (если есть одна шестнадцатеричная цифра, добавляется начальный ноль ). Цифры, которым предшествует знак процента ( %) в качестве escape-символа, затем используются в URI вместо зарезервированного символа. (Для символа, отличного от ASCII, он обычно преобразуется в последовательность байтов в UTF-8 , а затем каждое значение байта представляется, как указано выше.)

Зарезервированный символ /, например, если он используется в компоненте «путь» URI , имеет особое значение, поскольку он является разделителем между сегментами пути. Если, в соответствии с заданной схемой URI, /он должен находиться в сегменте пути, то в сегменте должны использоваться три символа %2Fили %2fвместо необработанного /.

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

Например, в компоненте запроса URI (часть после символа) по-прежнему считается зарезервированным символом, но обычно он не имеет зарезервированного назначения, если только в конкретной схеме URI не указано иное. Символ не нужно кодировать в процентах, если он не имеет зарезервированного назначения.?/