Встречается на собеседованиях • сегодня

Почему нельзя отправить тело в GET-запросе

GET-запросы предназначены для получения данных, а не для их отправки. Согласно HTTP-спецификации, тело GET-запроса не имеет смысла, так как серверы могут его игнорировать. Основные причины:

  1. Семантика HTTP: GET предназначен для извлечения данных, а POST/PUT — для отправки.
  2. Кеширование: Прокси и серверы кешируют GET-запросы по URL, тело может нарушить логику.
  3. Ограничения длины: URL имеет ограниченную длину (зависит от браузера/сервера), тело — нет.

Пример:

javascript
// Неправильно:
fetch('/api/data', {
  method: 'GET',
  body: JSON.stringify({ id: 1 }) // Сервер проигнорирует
});

// Правильно:
fetch('/api/data?id=1', { method: 'GET' });

Для отправки данных используйте POST/PUT.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы