Skip to content

Символы, которые нужно экранировать в запросах

🌐 Символы, требующие экранирования в теле HTTP-запроса

В теле HTTP-запроса (в URL, JSON, form-data, XML и других форматах) некоторые символы должны быть экранированы, чтобы не нарушить синтаксис или не вызвать ошибку интерпретации данных.


🔒 Символы, которые нужно экранировать (URL encoding)

СимволНазначение / причина экранированияКодировка (URL encoding)
(пробел)Разделитель — не допускается в URL%20 или +
"Строковый литерал в JSON/XML%22
'Апостроф (может нарушить SQL/XML/HTML)%27
<Тег в HTML/XML%3C
>Тег в HTML/XML%3E
&Разделитель параметров%26
=Разделяет имя и значение%3D
?Начало query-строки%3F
/Разделитель пути%2F
\Экранирование в JSON/JS%5C
#Якорь в URL%23
%Префикс для escape-последовательностей%25
:Разделитель схемы URL%3A
@В URL может обозначать логин%40
+Обозначает пробел в application/x-www-form-urlencoded%2B
{ }JSON-структуры%7B %7D
[ ]Массивы / JSON%5B %5D
,Разделитель в CSV, JSON и др.%2C

📌 Пример экранирования URL

Исходный URL:

https://example.com/api?query=тест & значение

После экранирования:

https://example.com/api?query=%D1%82%D0%B5%D1%81%D1%82%20%26%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5

📎 Пример в JSON

JSON с кавычками и спецсимволами:

{
"message": "Привет \"мир\" <script>alert('xss');</script>"
}

При передаче должно быть:

{
"message": "Привет \\"мир\\" \\u003Cscript\\u003Ealert(\\'xss\\');\\u003C/script\\u003E"
}

🧠 Совет

  • В URL используйте encodeURIComponent() (JavaScript) или аналогичные функции в других языках.
  • В JSON-строках используйте escape-символ \ и Unicode-коды.
  • Для application/x-www-form-urlencoded — кодируйте с учётом + вместо пробела.