URL大小
HTTP协议规范
HTTP协议并没有限制URI的长度,如下:
The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).
浏览器限制
当前所有主流浏览器都会对URI的长度进行限制,如果超过长度限制会自动进行截断,实操中不建议超过2000个字符(主流浏览器都支持);
Header大小
HTTP协议规范
理论上,HTTP协议并没有限制Header大小;
浏览器限制
各个主流浏览器限制几十k~几百M不等的限制,需要根据实际情况进行测试,给出一组数据如下:
Opera 10: 150MB
Safari 5: 20MB
IE 6 via Wine: 10MB
Chrome 5: 250KB
Firefox 3.6: 10KB
服务器限制
现在主流的apache和nginx服务器都有header大小的限制,可通过修改配置文件调整大小。Nginx默认的header长度上限是4k,如果超过了这个值nginx会直接返回400错误,可通过以下2个参数来调整nginx的header上限:
client_header_buffer_size 16k;
large_client_header_buffers 4 16k;
Body大小
HTTP协议规范
理论上,HTTP协议并没有限制消息体大小;
浏览器限制
通过表达传送文件时,可以对文件大小进行限制;
服务器限制
Nginx默认对body大小限制是1M,如下:
client_max_body_size //限制body大小,默认是1m
参考: