首先明确一点,http协议里并没有对url的长度做任何限制,协议里只是规定url因太长导致服务器无法处理时,服务器应该返回414状态码。
2014年,IETF对http协议进行了更新,将RFC2616拆分为6个单独的协议说明,在RFC 7230的3.1.1章节中有如下表述:
HTTP does not place a predefined limit on the length of a request-line, as described in Section 2.5. A server that receives a method longer than any that it implements SHOULD respond with a 501(Not Implemented) status code. A server that receives a request-target longer than any URI it wishes to parse MUST respond with a 414 (URI Too Long) status code (see Section 6.5.12 of [RFC7231]).
那么为什么总有一个url有长度限制的印象呢?你的印象其实是浏览器和服务器造成的。
下表是各种浏览器对url长度的限制说明,数据很老了
浏览器 | 长度限制 |
---|---|
IE | 2083 |
firefox | 65536 |
chrome | 8182 |
Safari | 80000 |
Opera | 190000 |
下表是各服务器对url的长度限制
服务器 | 长度限制 |
---|---|
Apache | 8192 |
IIS | 16384 |
ngnix | client_header_buffer_size参数为请求头分配一个缓冲区,默认1k,可修改 |
QQ交流群: 211426309