http报头值的最大值?

http报头值的最大值?

HTTP报头是否有可接受的最大允许大小?如果是,那是什么?如果不是,这是特定于服务器的东西,还是允许任何大小的标头的公认标准?



烙印99
浏览 308回答 3
3回答

慕标琳琳

正如vartec在上面所说的,HTTP规范没有定义限制,但是默认情况下,很多服务器都是这样做的。这意味着,实际上,下限是8K..对于大多数服务器,此限制适用于请求行和全标头字段(所以把你的饼干留短一点)。阿帕奇2.0,&nbsp;2.2:&nbsp;8K尼克斯:&nbsp;4K-8KIIS:不同版本,&nbsp;8K-16K(B)次级方案:不同版本,&nbsp;8K-48K(?)值得注意的是,nginx默认使用系统页面大小,在大多数系统中为4K。你可以用这个小程序来检查:c.#include&nbsp;<unistd.h> #include&nbsp;<stdio.h> int&nbsp;main()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;pageSize&nbsp;=&nbsp;getpagesize(); &nbsp;&nbsp;&nbsp;&nbsp;printf("Page&nbsp;size&nbsp;on&nbsp;your&nbsp;system&nbsp;=&nbsp;%i&nbsp;bytes\n",&nbsp;pageSize); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0; }用gcc -o pagesize pagesize.c那就跑./pagesize..我的ubuntu服务器林诺德尽职尽责地告诉我答案是4k。

四季花海

如第2.5节所述,http不对每个标头字段的长度或整个标头部分的长度设置预定义的限制。在实践中发现了对单个标头字段长度的各种特殊限制,这通常取决于特定字段的语义。HTTP头值受服务器实现的限制。http规范不限制标头大小。如果服务器接收的请求头字段或字段集大于其希望处理的范围,则必须使用适当的4xx(客户端错误)状态代码进行响应。忽略这些标头字段将增加服务器对请求走私攻击的脆弱性(第9.5节)。大多数服务器将返回413 Entity Too Large或者当这种情况发生时,适当的4xx错误。如果字段语义是这样的,则客户端可以丢弃或截断大于客户端希望处理的接收标头字段,从而可以安全地忽略掉的值,而无需更改消息帧或响应语义。无上限的HTTP报头大小会使服务器暴露于攻击中,并会降低其服务有机通信量的能力。来源
打开App,查看更多内容
随时随地看视频慕课网APP