对于http请求中的绝对URL请求,Jetty返回400

时间:2012-07-09 11:28:05

标签: java http tomcat jetty

我已经用Jetty取代了Tomcat。现在我有400个http错误代码用于第三方系统发送的请求。我看到,curl和网络浏览器发送的测试的差异是http动词中的网址:

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等相对网址发布工作正常。谁错了?我不能改变第三方系统,所以,是否有可能让码头接受这样的请求?

我试过Jetty v6.1.26,v7.6.4和v8.1.4 - 工作原理相同。


好的,我认为原因是在网址后缺少尾随斜杠,POST http://10.15.1.9:49302/ HTTP/1.0工作正常。

是否有任何机构知道是否有跳船问题或客户端发送格式错误的网址?

2 个答案:

答案 0 :(得分:0)

虽然HTTP规范RFC-2616表示请求行的server 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始终是代理请求。

答案 1 :(得分:0)

reported the issue,现在已经修好了。