为了账号安全,请及时绑定邮箱和手机立即绑定

http报头值的最大值?

http报头值的最大值?

烙印99 2019-08-03 07:03:29
http报头值的最大值?HTTP报头是否有可接受的最大允许大小?如果是,那是什么?如果不是,这是特定于服务器的东西,还是允许任何大小的标头的公认标准?
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

正如vartec在上面所说的,HTTP规范没有定义限制,但是默认情况下,很多服务器都是这样做的。这意味着,实际上,下限是8K..对于大多数服务器,此限制适用于请求行和标头字段(所以把你的饼干留短一点)。

值得注意的是,nginx默认使用系统页面大小,在大多数系统中为4K。你可以用这个小程序来检查:

c.

#include <unistd.h>
#include <stdio.h>

int main() {
    int pageSize = getpagesize();
    printf("Page size on your system = %i bytes\n", pageSize);
    return 0;
}

gcc -o pagesize pagesize.c那就跑./pagesize..我的ubuntu服务器林诺德尽职尽责地告诉我答案是4k。




查看完整回答
反对 回复 2019-08-04
?
四季花海

TA贡献1811条经验 获得超5个赞

如第2.5节所述,http不对每个标头字段的长度或整个标头部分的长度设置预定义的限制。在实践中发现了对单个标头字段长度的各种特殊限制,这通常取决于特定字段的语义。

HTTP头值受服务器实现的限制。http规范不限制标头大小。

如果服务器接收的请求头字段或字段集大于其希望处理的范围,则必须使用适当的4xx(客户端错误)状态代码进行响应。忽略这些标头字段将增加服务器对请求走私攻击的脆弱性(第9.5节)。

大多数服务器将返回413 Entity Too Large或者当这种情况发生时,适当的4xx错误。

如果字段语义是这样的,则客户端可以丢弃或截断大于客户端希望处理的接收标头字段,从而可以安全地忽略掉的值,而无需更改消息帧或响应语义。

无上限的HTTP报头大小会使服务器暴露于攻击中,并会降低其服务有机通信量的能力。

来源




查看完整回答
反对 回复 2019-08-04
  • 3 回答
  • 0 关注
  • 307 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信