HTTP GET请求的最大长度?

什么是HTTP GET请求的最大长度? 是否有响应错误定义服务器可以/应该返回,如果它收到一个GET请求超过这个长度?

更新:如标签所示,这是在Web服务API的上下文中,尽管看到浏览器限制也很有趣。


该限制取决于所使用的服务器和客户端(如果适用,还取决于服务器或客户端使用的代理)。

大多数网络服务器的限制为8192字节(8KB),通常可在服务器配置中的某处进行配置。 至于客户端方面,HTTP 1.1规范甚至对此提出警告,下面是第3.2.1节的摘录:

注意:服务器应该谨慎使用高于255字节的URI长度,因为一些较旧的客户端或代理实现可能不能正确支持这些长度。

限制是在MSIE和Safari约2KB,Opera约4KB和Firefox约8KB。 因此,我们可以假定8KB是可能的最大长度,并且2KB是服务器端依赖的更合理的长度,并且255个字节是假定整个URL将进入的最安全长度。

如果在浏览器或服务器中超出限制,则大多数人只会截断超出限制的字符,不会有任何警告。 但是,某些服务器可能会发送HTTP 414错误。 如果您需要发送大量数据,那么最好使用POST而不是GET。 其限制要高得多,但更多地依赖于使用的服务器而不是客户端。 通常平均web服务器允许大约2GB左右。 这也可以在服务器设置的某处进行配置。 当POST超出限制时,平均服务器将显示特定于服务器的错误/异常,通常为HTTP 500错误。


你在这里问两个单独的问题:

什么是HTTP GET请求的最大长度?

如前所述,HTTP本身不会对请求长度施加任何硬编码限制; 但浏览器在2kb - 8kb范围内有限制(如果我们计算非常旧的浏览器,则为255个字节)。

是否有响应错误定义服务器可以/应该返回,如果它收到一个GET请求超过这个长度?

这是没有人回答的。

对于达到服务器定义限制的情况,HTTP 1.1定义了状态码414 Request-URI Too Long 。 你可以在RFC 2616上看到进一步的细节。

对于客户端定义的限制,服务器没有任何意义返回,因为服务器根本不会收到请求。

希望这可以帮助。


类似的问题在这里:GET请求的长度是否有限制?

我已经达到了上限和共享主机帐户,但浏览器在到达服务器之前返回了一个空白页面。

链接地址: http://www.djcxy.com/p/17583.html

上一篇: maximum length of HTTP GET request?

下一篇: What is the quickest way to HTTP GET in Python?