В HTTP/1.1 блок заголовков завершается пустой строкой, то есть CRLF CRLF после последнего заголовка. Наличие и длину тела затем определяют правила framing, а не само пустое место.
Как понять, что заголовки HTTP-запроса закончились и началось тело запроса?
В 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.