QueryString / GET / URL参数的限制是什么?

QueryString / GET / URL参数的限制是什么?

理论上没有限制。 对于HTTP URL, HTTP 1.1规范指出:

HTTP协议不会对URI的长度进行任何先验限制。 服务器必须能够处理它们所服务的任何资源的URI,并且如果它们提供了可以生成这种URI的基于GET的表单,那么它们应该能够处理无限长的URI。 如果一个URI长于服务器可以处理的时间(见10.4.15节),服务器应该返回414(Request-URI太长)状态。

但实际上,许多客户端和服务器只支持一定长度的URL。 经验法则是不要使用长度超过2000个字符的URL (已考虑的编码百分比)。

没有定义的限制。 但是,RFC 2068指出:

HTTP协议不会对URI的长度进行任何先验限制。 服务器必须能够处理它们所服务的任何资源的URI,并且如果它们提供了可以生成这种URI的基于GET的表单,那么它们应该能够处理无限长的URI。 如果一个URI长于服务器可以处理的时间(见10.4.15节),服务器应该返回414(Request-URI太长)状态。 注意:服务器应该谨慎使用高于255字节的URI长度,因为一些较旧的客户端或代理实现可能不能正确支持这些长度。

我记得标准为URL(包括查询string)定义了1024个字节,但是我也读过Internet Explorer最多接受2083个字符的地方。 可能相当依赖于浏览器…