HTTP GET请求的最大长度?

HTTP GET请求的最大长度并无统一规定,但实际受到浏览器、服务器和代理的限制。常见的限制在2KB到8KB之间,超过这个长度可能导致请求被截断或者服务器返回HTTP 414错误。建议在需要发送大量数据时使用POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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


#1楼

从技术上讲,如果URL长度超过2000个字符,我会看到HttpGet会出现问题。 在这种情况下,最好使用HttpPost或拆分URL。


#2楼

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

我已经达到了共享主机帐户的限制,但是浏览器在到达我认为的服务器之前返回了一个空白页。


#3楼

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

大多数Web服务器的限制为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。 它的限制高得多,但是比客户端更依赖于所使用的服务器。 一般的网络服务器通常最多允许2GB的空间。 也可以在服务器设置中的某个位置进行配置。 当超过POST限制时,普通服务器将显示特定于服务器的错误/异常,通常为HTTP 500错误。


#4楼

您在这里问两个独立的问题:

HTTP GET请求的最大长度是多少?

如前所述,HTTP本身并未对请求长度施加任何硬编码的限制。 但浏览器的限制范围为2kb-8kb(如果算上非常老的浏览器,则为255个字节)。

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

那是没人回答的那个。

对于达到服务器定义的限制的情况,HTTP 1.1定义状态代码414 Request-URI Too Long 。 您可以在RFC 2616上看到更多详细信息。

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

希望这可以帮助。


#5楼

如前所述,HTTP本身并未对请求长度施加任何硬编码的限制。 但是浏览器的限制范围为get方法中允许的2048个字符。


#6楼

使用Chrome浏览器获取请求 是。 GET请求没有限制。

I am able to send ~4000 characters as part of the query string using chrome browser & curl command both. 

我正在使用tomcat 8.x服务器,该服务器已返回预期的200 OK响应。

这是chrome http请求的屏幕截图(出于安全原因隐藏了我尝试的端点):

响应 使用Chrome浏览器获取


#7楼

浏览器限制为:

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

想要更多? 在Stack Overfollow上看到这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值