快速问题 - HTTP响应的状态行有最大大小限制吗?
在RFC中,我找不到这个信息,只有类似于这样的内容:
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
根据这个,我可以假设:
- HTTP-Version通常为8个字节(例如
HTTP/1.1
) - Status-Code为3个字节
- 2个空格+ CRLF为4个字节
- Reason-Phrase-> RFC中最长的是
Requested range not satisfiable
,因此为31个字节
这将总共为46个字节。
这个假设正确吗?还是我错过了什么?
更新:
由于下面的答案,我想稍微说明一下我的问题:
我正在解析来自服务器的TCP消息的某种日志文件。现在有一些我不关心的随机数据和一些我想要读取的HTTP消息。现在,我获取的所有数据都会解析一个 \r\n
以查找状态行。由于我需要假设我的标头分成几个TCP包,所以我缓冲所有数据并进行解析。
如果状态行的标头没有最大大小限制,我需要缓冲所有数据,直到出现下一个\r\n
。在最坏的情况下,这意味着我保存了大量随机数据,因为它可能(但很可能不会)是标头状态行的一部分。
或者,在这种情况下,是否更适合解析HTTP版本字符串而不是CRLF?