猿问

HTTP GET请求的最大长度?

HTTP GET请求的最大长度?

HTTPGET请求的最大长度是多少?如果服务器收到超过此长度的GET请求,是否定义了服务器可以/应该返回的响应错误?

最新情况:正如标记中所指出的,这是在Web服务API的上下文中进行的,尽管查看浏览器限制也很有趣。


收到一只叮咚
浏览 3304回答 4
4回答

慕村225694

限制取决于所使用的服务器和客户端(如果适用的话,也取决于服务器或客户端使用的代理)。大多数Web服务器的限制为8192字节(8KB),通常可以在服务器配置的某个位置进行配置。至于客户端问题,HTTP1.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错误。

斯蒂芬大帝

你在这里提出两个不同的问题:HTTPGET请求的最大长度是多少?如前所述,HTTP本身并不对请求长度施加任何硬编码限制;但是浏览器的限制范围是2kb-8KB(如果算上的话是255字节)。很老(浏览器)。如果服务器收到超过此长度的GET请求,是否定义了服务器可以/应该返回的响应错误?那是没有人回答的。HTTP 1.1定义状态代码414 Request-URI Too Long对于达到服务器定义限制的情况。您可以看到更多关于RFC 2616.对于客户机定义的限制,服务器返回某些内容是没有意义的,因为服务器根本不会接收请求。希望这能帮上忙。

慕侠2389804

浏览器的限制是:Browser     Address bar   document.location                             or anchor tag ------------------------------------------ Chrome          32779           >64k       Android          8192           >64k                          Firefox          >64k           >64k       Safari           >64k           >64k       IE11             2047           5120    Edge 16          2047          10240想要更多吗?看见关于堆栈过载的问题
随时随地看视频慕课网APP
我要回答