---
title: Символы, которые нужно экранировать в запросах
slug: общие-обмен-данными/символы-которые-нужно-экранировать-в-запросах
---
# 🌐 Символы, требующие экранирования в теле 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 с кавычками и спецсимволами:

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

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

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

---

## 🧠 Совет

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