【问题标题】:Jetty returns 400 for requests for absolute URL in the http requestJetty 在 http 请求中对绝对 URL 的请求返回 400
【发布时间】:2012-07-09 11:28:05
【问题描述】:

我已经用 Jetty 替换了 Tomcat。现在,对于第三方系统发送的请求,我有 400 个 http 错误代码。如我所见,curl 发送的测试与网络浏览器的区别在于 http 动词中的 url:

POST http://10.15.1.9:49302 HTTP/1.0
Host: 10.15.1.9
Content-Type: text/xml
Content-Length: 71065
User-Agent: hpost/0.1
Pragma: no-cache
Accept: */*

此请求不起作用,但使用 POST / HTTP/1.0 等相对 URL 发布可以正常工作。谁错了?无法更改第三方系统,请问可以让jetty接受这样的请求吗?

我已经尝试过 Jetty v6.1.26、v7.6.4 和 v8.1.4 - 工作方式相同。


好的,我认为原因是 url 后面缺少斜杠,POST http://10.15.1.9:49302/ HTTP/1.0 工作正常。

有没有人知道是码头问题还是客户端发送了格式错误的网址?

【问题讨论】:

    标签: java http tomcat jetty


    【解决方案1】:

    虽然 HTTP 规范 RFC-2616server must accept absoluteuri's 用于请求行,但这通常仅用于代理请求。

    对于 Jetty,请求行 POST http://10.15.1.9:49302 HTTP/1.0 被视为 HTTP/1.0 请求,并符合 RFC-1945 for Request Line URIs 的规则,即 absoluteuri 始终是代理请求。

    【讨论】:

      【解决方案2】:

      我有reported the issue,现在已经修复了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多