В RFC я не смог найти эту информацию, просто что-то вроде этого :
Строка состояния = HTTP-версия SP Код состояния SP Фраза причины CRLF
В соответствии с этим я мог бы предположить:
- HTTP-версия обычно имеет размер 8 байт (например, HTTP/1.1 )
- Код состояния — 3 байта.
- 2 пробела + CRLF — 4 байта.
- Фраза-причина -> Самая длинная в соответствии с RFC — запрошенный диапазон невыполним, поэтому 31 байт
Правильно ли это предположение или я что-то пропустил?
ОБНОВЛЕНИЕ:< /p>
В связи с ответом ниже я просто хочу немного конкретизировать свою проблему:
Я анализирую какой-то файла журнала с TCP-сообщениями с сервера. Теперь есть некоторые случайные данные, которые мне не нужны, и несколько HTTP-сообщений, которые я хочу прочитать. Теперь все данные, которые я получаю, я анализирую на предмет \r\n, чтобы найти строку состояния. Поскольку мне нужно предположить, что мой заголовок разделен на несколько пакетов TCP, я просто буферизирую все данные и анализирую их.
Если не существует максимального размера строки состояния заголовка, мне нужно буферизовать все данные до тех пор, пока не произойдет следующий \r\n. В худшем случае это означает, что я сохраняю килобайты вместо килобайт случайных данных, поскольку они могут (но, скорее всего, не будут) быть частью строки состояния заголовка.
Или в этом случае было бы целесообразнее анализировать строку версии HTTP вместо CRLF?
Подробнее здесь: https://stackoverflow.com/questions/951 ... ximum-size
Мобильная версия