Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: http, content-length, tcp, keepalive

Почему важно указывать Content-Length в HTTP-ответах и что произойдёт, если его нет?

Проверяет понимание низкоуровневой работы HTTP и сетей.

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

Если нет Content-Length, сервер может перейти в chunked-encoding или закрыть соединение после ответа. Клиенту сложнее определить границы сообщения, а keep-alive хуже работает.

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

Content-Length говорит клиенту, сколько байт данных будет передано.

Если заголовок отсутствует:

  1. Сервер переключается в chunked transfer-encoding (HTTP/1.1).

  2. Клиент должен парсить поток chunk-за-chunk’ом.

  3. Некоторые прокси и балансировщики начинают вести себя нестабильно.

  4. Невозможно эффективно использовать pipelining/keep-alive.

  5. В HTTP/1.0 сервер закрывает соединение, чтобы сигнализировать конец ответа.

Проблемы:

  • увеличенная задержка на чтение

  • больше системных вызовов

  • нестабильная работа между сервисами

В Go http.ResponseWriter сам выставляет Content-Length, если вы пишете в буфер.

Вывод: для стабильности и предсказуемости сетевого взаимодействия лучше всегда иметь Content-Length.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Golang

    Golang

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

#http

#content-length

#tcp

#keepalive

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.