url长度有限制么?

首先明确一点,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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案