B2BB2CH2H

Экранирование

Экранирование специальных символов - это процесс преобразования специальных символов (например, кавычек, пробелов, знаков препинания) в их соответствующие эквиваленты для передачи данных через различные протоколы и форматы.

Процентное кодирование или кодирование URI-адресов представляет собой метод кодирования произвольных данных с использованием ограниченных символов US-ASCII, разрешенных в URI.

Синтаксис URI содержит зарезервированные символы (двух типов) и незарезервированные символы.

Зарезервированные символы

gen-delims ":", "/", "?", "#", "[", "]", "@" - символы, разделяющие URI на крупные компоненты.

sub-delims "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" - символы, разделяющие крупный компонент на более мелкие составляющие.

Незарезервированные символы

В общем случае незарезервированные символы это ALPHA, DIGIT, "-", ".", "_", "~", где ALPHA - это буквы, а DIGIT - десятичные цифры.

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

Например, зарезервированный символ "/" может быть заменен следующими символами - %2F.

Пример запроса без экранирования
https://id.alfabank.ru/oidc/authorize?response_type=code&client_id=0cee0683-85ae-49f2-a63d-29f97aad1911&redirect_uri=https://wwww.partner.ru/code&scope=openid&state=abcdef
Пример запроса с экранированием
https://id.alfabank.ru/oidc/authorize?response_type=code&client_id=0cee0683-85ae-49f2-a63d-29f97aad1911&redirect_uri=https%3A%2F%2Fwwww.partner.ru%2Fcode&scope=openid&state=abcdef
Таблица кодирования символов
СимволANSI
~%7E
`60%
'27%
"22%
@40%
?%3F
!21%
#23%
%B9
$24%
%25%
^%5E
&26%
+%2B
*%2A
:%3A
,%2C
(28%
)29%
{%7B
}%7D
[%5B
]%5D
<%3C
>%3E
/%2F
%5C
А%C0
а%E0
Б%C1
б%E1
В%C2
В%E2
Г%C3
г%E3
Д%C4
д%E4
Е%C5
е%E5
Ё%A8
ё%B8
Ж%C6
ж%E6
З%C7
з%E7
И%C8
и%E8
Й%C9
й%E9
К%CA
к%EA
Л%CB
л%EB
М%CC
м%EC
Н%CD
н%ED
О%CE
о%EE
П%CF
п%EF
Р%D0
р%F0
С%D1
с%F1
Т%D2
т%F2
У%D3
у%F3
Ф%D4
ф%F4
Х%D5
х%F5
Ц%D6
ц%F6
Ч%D7
ч%F7
Ш%D8
ш%F8
Щ%D9
щ%F9
Ъ%DA
ъ%FA
Ы%DB
ы%FB
Ь%DC
ь%FC
Э%DD
э%FD
Ю%DE
ю%FE
Я%DF
я%FF