Сравни способы передачи данных в HTTP-запросе и объясни, когда выбирать каждый вариант.
DOM и браузер
Данные в HTTP-запросе передают через URL (path и query), тело (body), заголовки (headers) и cookie. Выбор зависит от типа данных, метода и требований к безопасности.
Способы передачи
Query-параметры (в URL)
GET /search?q=react&page=2- Для фильтров, пагинации, поиска (GET).
- Плюсы: кешируется, можно сохранить в закладки.
- Минусы: видны в URL/логах, ограничение длины — не для секретов и больших данных.
Path-параметры
GET /users/42Для идентификации конкретного ресурса.
Тело запроса (body)
fetch('/users', { method: 'POST', body: JSON.stringify(data) });- Для создания/обновления (POST/PUT/PATCH), больших и структурированных данных.
- Не видно в URL; объём практически не ограничен.
Заголовки (headers)
Authorization: Bearer token
Content-Type: application/jsonДля метаданных: авторизация, формат, кеширование.
Cookie
Автоматически на сервер — для сессий/токенов.
Как выбирать
- Фильтры/пагинация → query.
- Идентификатор ресурса → path.
- Данные на создание/изменение, секреты, большой объём → body (+ POST).
- Авторизация, метаданные → headers.
Коротко для собеседования
Передача данных в HTTP: query-параметры (фильтры, GET, видны в URL), path (id ресурса), body (создание/изменение, большие данные, не в URL), headers (авторизация, метаданные), cookie (сессии). Секреты и большой объём — в теле POST, а не в URL.