Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Node.js: HTTP, GET request, request body, REST API

Можно ли отправить body в GET-запросе?

Проверяет понимание спецификации HTTP и того, как браузеры и серверы обрабатывают тело запроса в GET-запросах.

Короткий ответ

По спецификации HTTP, GET-запрос может содержать тело, но это не рекомендуется. Большинство серверов, прокси и браузеров игнорируют или отбрасывают тело GET-запроса. На практике для передачи данных лучше использовать query-параметры или перейти на POST/PUT.

Длинный ответ

Что говорит спецификация?

Согласно RFC 7231, GET-запрос формально может содержать тело (payload). Однако семантика GET подразумевает получение ресурса без изменения состояния сервера, и тело запроса не имеет стандартного значения. Большинство HTTP-серверов (например, Nginx, Apache) и клиентов (браузеры, curl) либо игнорируют тело GET, либо возвращают ошибку.

Практические ограничения

  • Браузеры не поддерживают отправку тела в GET через fetch или XMLHttpRequest — тело просто не будет отправлено.
  • Прокси и кэширующие серверы могут отбросить тело, что приведет к непредсказуемому поведению.
  • Многие фреймворки (Express, Django, Spring) не парсят тело GET-запроса по умолчанию.

Пример кода (Node.js + Express)

const express = require('express');
const app = express();

app.get('/data', (req, res) => {
  // req.body будет undefined для GET
  console.log(req.body);
  res.send('OK');
});

app.listen(3000);

Даже если клиент отправит тело, сервер его не увидит.

Альтернативы

  • Используйте query-параметры: GET /search?q=hello
  • Если данных много или они чувствительны — переходите на POST или PUT.

Вывод

Хотя технически тело в GET допустимо, на практике его следует избегать из-за отсутствия поддержки в браузерах и серверах. Для передачи данных используйте query-параметры или другие HTTP-методы.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Node.js

    Node.js

  • Networks

Ключевые слова

#HTTP

#GET request

#request body

#REST API

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию