kb-personal/src/content/docs/knowledge-base/Общие/Обмен данными/Символы, которые нужно экранировать в запросах.md
2025-06-16 21:46:27 +05:00

77 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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` — кодируйте с учётом `+` вместо пробела.