11

私はすでに505が「HTTPバージョンはサポートされていません」とグーグルで検索しましたが、それでも私の問題を理解することはできません。クライアントを認証せずにHTTPSを有効にする自己署名証明書を備えたサーバー側のTomcatを備えたWebアプリケーションがあります。クライアントはサーバー証明書を認証します。Wiresharkパケットを分析しましたが、SSLハンドシャークは正しいようです。しかし、Tomcat localhost_access_logを確認すると、クライアント要求に対して505エラーが発生し、サーバー側もクライアント要求を受信しません。これについていくつかのヒントを教えていただけませんか?

172.25.21.113 - - [24/May/2012:16:28:26 +0800] "GET /updserver/update?action=signature_update&device_type=NGN&service_type=KAV&engine_ver=1.00&sig_ver=4.123&mac=0019CB72736E HTTP/1.1 " 505 -
4

2 に答える 2

16

(例のように)HTTPバージョンの後に空白が付いたTomcatにリクエストを送信すると、Tomcatは505エラーで応答します。Tomcat7.0.27で確認済み。

RFC 2616(HTTP 1.1)は、HTTP-Versionがで構成されていると述べてい"HTTP/" + digit + "." + digitます。Request-Lineはで終了します" " + HTTP-Version + CRLF。これは、最後の桁の後に空白が許可されないことを意味します。

参照:

于 2012-05-24T14:50:43.327 に答える
6

明らかにOPの答えではありませんが、SOLRサーバーをデバッグしようとしているときに、今夜このエラーメッセージが表示されました。

私の問題は、HTTPバージョンの後の余分なスペースではありませんでした。

私のクライアントアプリケーションは不正なURLをログに記録していました。これを、SOLRTomcatのhttpポートへのtelnet接続に簡単にコピーして貼り付けました。ログメッセージに、URLにスペースを適切に%20エンコードせずにURLが表示されました。URLのスペースの後のすべてをHTTPバージョンとして解釈していたためか、HTTPバージョンのエラーが発生しました。

ヒントを提供して くれたhttp://java.dzone.com/news/solr-tomcat-and-http11-505に感謝します。

于 2015-06-21T02:49:28.667 に答える