Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

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

Проверяет понимание спецификации HTTP и допустимости использования тела запроса в GET-запросах.

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

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

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

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

Согласно спецификации HTTP/1.1 (RFC 7231), GET-запрос предназначен для получения ресурса, а его семантика подразумевает, что тело запроса не имеет смысла. Формально протокол не запрещает включать тело в GET, но на практике это крайне ненадёжно.

Почему это проблема?

  • Большинство HTTP-клиентов (браузеры, curl, fetch) не позволяют легко отправить тело в GET.
  • Прокси-серверы, кеширующие серверы и некоторые фреймворки могут игнорировать или отбрасывать тело GET-запроса.
  • Серверная логика часто не обрабатывает тело GET, так как это противоречит общепринятой практике.

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

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

// GET с телом — нестандартно
app.get('/data', (req, res) => {
  console.log('Body:', req.body); // undefined, если нет middleware
  res.send('OK');
});

// POST — правильный способ
app.post('/data', (req, res) => {
  console.log('Body:', req.body);
  res.send('OK');
});

app.listen(3000);

Как видно, без специального парсера тело GET не будет доступно. Даже если вы добавите middleware, это не гарантирует работу через прокси.

Вывод

Не стоит отправлять тело в GET-запросе. Используйте POST, PUT или PATCH для передачи данных в теле, а GET — только для получения ресурсов без побочных эффектов. Это обеспечит совместимость и предсказуемость вашего API.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    3

Навыки

  • Node.js

    Node.js

  • Networks

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

#HTTP

#GET

#request body

#specification

#REST

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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