Как понять, что заголовки HTTP-запроса закончились и началось тело запроса?

В HTTP/1.1 блок заголовков завершается пустой строкой, то есть CRLF CRLF после последнего заголовка. Наличие и длину тела затем определяют правила framing, а не само пустое место.

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

Что ответить на собеседовании

В HTTP/1.1 блок заголовков завершается пустой строкой, то есть CRLF CRLF после последнего заголовка. Наличие и длину тела затем определяют правила framing, а не само пустое место.

Подробный разбор

Ответ с пояснениями

В HTTP/1.1 блок заголовков завершается пустой строкой, то есть CRLF CRLF после последнего заголовка. Наличие и длину тела затем определяют правила framing, а не само пустое место.

Обычно используются Content-Length или Transfer-Encoding с chunked, причём противоречивые значения нельзя разбирать произвольно. В HTTP/2 и HTTP/3 сообщение передаётся кадрами, поэтому правило текстового разделителя к ним напрямую не применяется. Парсер должен следовать версии протокола: иначе возникают ошибки границ сообщений и риски request smuggling.

Источник: www.rfc-editor.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее