HTTP GET请求的最大长度是多少?
如果接收到超过此长度的 GET 请求,是否定义了服务器可以/应该返回的响应错误?
这是在 Web 服务 API 的上下文中,尽管看到浏览器限制也很有趣。
该限制取决于所使用的服务器和客户端(如果适用,还取决于服务器或客户端正在使用的代理)。
大多数 Web 服务器都有 8192 字节(8 KB)的限制,通常可以在服务器配置中的某处进行配置。至于客户端问题,HTTP 1.1 规范甚至对此提出警告。这是第 3.2.1 章的摘录:
注意:服务器应该谨慎依赖 URI 长度超过 255 字节,因为一些较旧的客户端或代理实现可能无法正确支持这些长度。
Internet Explorer 和 Safari 中的限制约为 2 KB,Opera 中约为 4 KB,Firefox 中约为 8 KB。因此,我们可以假设 8KB 是可能的最大长度,而 2KB 是在服务器端依赖的更实惠的长度,而 255 字节是假设整个 URL 将进入的最安全长度。
如果在浏览器或服务器中超出限制,大多数人只会截断超出限制的字符而不会发出任何警告。 但是,某些 服务器可能会发送HTTP 414 错误。
如果您需要发送大数据,那么最好使用 POST 而不是 GET。它的限制要高 得多 ,但更多地依赖于所使用的服务器而不是客户端。一般的 Web 服务器通常最多允许 2 GB 左右。
这也可以在服务器设置中的某处进行配置。当超过 POST 限制时,一般服务器会显示特定于服务器的错误/异常,通常是 HTTP 500 错误。