首页 文章

HTTP GET请求的最大长度?

提问于
浏览
420

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

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

7 回答

  • -3

    你在这里问两个不同的问题:

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

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

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

    那是没有人回答的 .

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

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

    希望这可以帮助 .

  • 1

    浏览器限制是:

    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
    

    想要更多?见this question on Stack Overfollow

  • 4

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

  • 4

    类似的问题:Is there a limit to the length of a GET request?

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

  • 3

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

  • 403

    GET REQUEST using chrome browser
    是的 . 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请求的屏幕截图(由于安全原因隐藏了我尝试过的 endpoints ):

    回复
    GET using chrome browser

  • 133

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

    大多数Web服务器的限制为8192字节(8KB),通常可在服务器配置中的某处进行配置 . 至于客户端问题,HTTP 1.1规范甚至警告过这个,这里是chapter 3.2.1的摘录:

    注意:服务器应该谨慎依赖于长度超过255字节的URI,因为某些较旧的客户端或代理实现可能无法正确支持这些长度 .

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

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

相关问题