我已经用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
工作正常。
是否有任何机构知道是否有跳船问题或客户端发送格式错误的网址?
答案 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,现在已经修好了。