gpt4 book ai didi

jetty - Dropwizard:如何修复 414 Request-URI 太长

转载 作者:行者123 更新时间:2023-12-01 15:25:15 26 4
gpt4 key购买 nike

请求(GET)或(POST):

http://localhost:8080/images?name=iVBORw0KGgoAAAANSUhEUgAAAAUA%20AAAFC ……

响应:

状态代码:414 请求 URI 太长连接:关闭内容长度:0

如何增加请求大小?

最佳答案

您有一个大小超过 8kb 的请求 URI!哎呀!

由于在浏览器、代理和网络硬件中发现了各种漏洞和错误,因此存在请求 URI 限制。

虽然可以增加 Jetty 中的请求 URI 限制检查,但为 Jetty 选择的值代表了公共(public)互联网上各种 http 客户端和中介使用的当前安全最大值。

警告:您不想这样做

这不适合:

  • 可从 Internet 访问的 WebServer。
  • 可通过 Chrome、Firefox、Safari、MSIE 或 Opera 等浏览器访问的网络服务器。
  • 可通过 Android、iOS 或 Microsoft 移动设备等移动设备访问的网络服务器。
  • 前面有代理的 WebServer。
  • 使用代理访问 WebServer 的客户端。

这仅对直接与 Jetty 服务器对话的自定义 HTTP 客户端之间的有限事务有用。

Jetty 9.2.6.v20141205 说明

如果您还没有 Jetty Base ${jetty.base} 目录,请创建一个并初始化它。

[user]$ mkdir mybase
[user]$ cd mybase
[mybase]$ java -jar /path/to/jetty-distribution-9.2.6.v20141205/start.jar \
--add-to-start=http,deploy,webapp

编辑${jetty.base}/start.ini

并根据您想要的上限更改(或添加)以下属性。

jetty.request.header.size=8192

不,没有办法禁用此限制检查。

对于每一次增长,您都会面临越来越大的问题。

开始时一些浏览器(最终是所有浏览器)不发送请求,更不用说 jetty 接收它了。

与此同时,许多代理服务器处理您的请求的能力开始失效,导致连接或请求终止和失败。有时甚至会截断对 Jetty 的请求。

此外,每次增加都会使您面临围绕 header 中未经检查的限制的各种漏洞,从而导致各种组织能够执行基于 CPU 和内存的 DOS 攻击,而这些攻击只需要很少的网络流量即可执行。

解决此问题的正确方法:

您真的应该切换到基于 POST(或 PUT)的请求数据,而不是在 HTTP 协议(protocol)的请求 header 中发送那么多数据。

关于jetty - Dropwizard:如何修复 414 Request-URI 太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27950281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com