Является ли процентное кодирование URL чувствительным к регистру?

Обрабатывается ли %3B иначе, чем %3b в URL-адресе?


person hugomg    schedule 03.11.2011    source источник
comment
Нашел противоречивую информацию. Я думал, что задать вопрос будет самым простым способом прояснить ситуацию.   -  person hugomg    schedule 03.11.2011
comment
Ok. Я считаю, что информация в ссылке говорит, что это из RFC. Но то, как это реализовано, всегда остается загадкой для производителей браузеров. ;)   -  person Christian Wattengård    schedule 03.11.2011


Ответы (1)


Нет, процентное кодирование URL НЕ чувствительно к регистру. Согласно RFC 3986:

<сильный>2.1. Процентное кодирование

[...]

Шестнадцатеричные цифры от «A» до «F» в верхнем регистре эквивалентны цифрам в нижнем регистре от «a» до «f» соответственно. Если два URI отличаются только шестнадцатеричными цифрами, используемыми в октетах с процентным кодированием, они эквивалентны.

person Zero Piraeus    schedule 21.08.2013
comment
Может быть уместно упомянуть, что в случаях, когда URI используется для объявления пространства имен в XML (также XHTML, SOAP и т. д.), это процентное кодирование не имеет никакого эффекта (оно не декодируется) и просто является частью строки, которая составляет пространство имен. В результате он чувствителен к регистру. т.е. xmlns:t="http://foo.bar/%2A" не равно и не эквивалентно xmlns:t="http://foo.bar/%2a". - person Abel; 24.08.2016
comment
@Abel, хотя это правда, на самом деле это связано с тем, что пространства имен XML на самом деле не являются URI (хотя их спецификация ложно утверждает обратное). Например, часть пространства имен, которая претендует на роль компонента домена, также чувствительна к регистру в объявлениях пространств имен XML в нарушение RFC 3986. - person Zero Piraeus; 28.04.2017
comment
точно, в этом и был смысл, спасибо за дополнительный контекст - person Abel; 28.04.2017