1

TomcatをJettyに置き換えました。これで、サードパーティのシステムから送信されたリクエストに対して400のhttpエラーコードがあります。curlご覧のとおり、Webブラウザとによって送信されたテストとの違いは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: */*

このリクエストは機能しませんが、などの相対URLで投稿すると問題なく機能しますPOST / HTTP/1.0。誰が間違っていますか?サードパーティのシステムを変更することはできませんが、桟橋にそのような要求を受け入れさせることはできますか?

Jetty v6.1.26、v7.6.4、v8.1.4を試しましたが、同じように動作します。


わかりました。理由は、URLの後にスラッシュがないことだと思います。問題なくPOST http://10.15.1.9:49302/ HTTP/1.0動作します。

突堤の問題なのか、クライアントが不正な形式のURLを送信したのかを誰かが知っていますか?

4

2 に答える 2

0

HTTP仕様RFC-2616は、サーバーが要求行に対してabsoluteuriを受け入れる必要があると述べていますが、これは通常、プロキシ要求にのみ使用されます。

Jettyにとって、リクエストラインPOST http://10.15.1.9:49302 HTTP/1.0はHTTP / 1.0リクエストと見なされ、absoluteuriは常にプロキシリクエストであると述べているリクエストラインURIのRFC-1945のルールに該当します。

于 2012-08-11T04:50:36.753 に答える
0

問題を報告しましたが、現在修正されています。

于 2012-10-19T20:11:18.353 に答える