Быстрый вопрос - есть ли максимальный размер строки состояния ответа HTTP?
В RFC я не смог найти эту информацию, просто что-то вроде этого:
Status-Line = HTTP-версия SP. Статус-код SP. Причина-фраза CRLF
В соответствии с этим я могу предположить:
- HTTP-версия обычно составляет 8 байт (например,
HTTP/1.1
) - Код состояния - 3 байта
- 2 пробела + CRLF - 4 байта
- Фраза-аргумент -> Самый длинный в соответствии с RFC:
Requested range not satisfiable
так 31 байт
Это будет сумма 46 байт.
Это предположение правильно или я что-то пропустил?
ОБНОВЛЕНИЕ:
В связи с ответом ниже, я просто хочу указать мою проблему aбит:
Я анализирую какой-то файл журнала с сообщениями TCP с сервера.Теперь есть некоторые случайные данные, которые мне не нужны, и некоторые HTTP-сообщения, которые я хочу прочитать.Теперь все данные, которые я получаю, я анализирую для \r\n
, чтобы найти строку состояния.Поскольку мне нужно сделать предположение, что мой заголовок разбит на несколько пакетов TCP, я просто буферизирую все данные и анализирую их.
Если для строки состояния заголовка нет максимального размера, мне нужно буферизовать все данные до следующего \r\n
.В худшем случае это означает, что я сохраняю как килобайты, а не килобайты случайных данных, поскольку может (но, скорее всего, не будет) быть частью строки состояния заголовка.
Или это будетв этом случае будет уместно анализировать строку версии HTTP вместо CRLF?