2017-04-19 17 views
0

私は org.apache.http.impl.client.CloseableHttpClient を使用しています。ヘッダーの1つのサイズは(103452バイト程度)大きいときはいつでも、私が取得:java.net.SocketException:大きなHTTPヘッダーの接続のリセット

java.net.SocketExceptionがします。接続は、接続が、おそらく他のクライアントから、サーバーによってリセットされていない

をリセット同様に大きなヘッダーを送信しながら、他のJavaアプリケーション(おそらくSpring OAUTH/RESTクライアントを使用)からサービスを使用できるように見えます。

大きなヘッダーを送信する必要性を回避するための適切な修正がある場合でも、大きいヘッダーでのクラッシュを防ぐorg.apache.http.impl.client.CloseableHttpClientの構成がありますか?

クライアントがで構築されて:あなたは、サーバーが要求を拒否されていない

HttpClientBuilder.create().useSystemProperties().build() 
+0

サーバーがリクエストを拒否していないことを確認してください。 HTTPの仕様には限界がありません。Apacheクライアントがデフォルト設定を適用しているとは思えません。ただし、Webサーバーは...詳細については、https://stackoverflow.com/questions/686217/maximum-on-http-header-valuesを参照してください。 Webサーバーが課す制限は、単一のヘッダーではなく、すべてのヘッダーの合計サイズに対する制限であることに注意してください。 – Alex

+0

良い点。私は確認します – erjoalgo

+0

あなたは答えとしてあなたのコメントを追加していただけますか?私はローカルサーバにリクエストを送信しようとしました: 'sudo nc -l 80'。 100Kbヘッダーのリクエストは、apache httpクライアントによって完全に正常に送信されました。同時に、私は 'curl'クライアント経由で実サーバに同じリクエストを送信しようとしましたが、' curl:(56)Proxy CONNECT aborted'を取得しました。したがって、プロキシでさえ、このような大きなヘッダーサイズを拒否している可能性があります。 – erjoalgo

答えて

0

どのようによろしいですか?

HTTP仕様には制限がありません。Apacheクライアントがデフォルト設定を適用しているとは思えません。

ただし、Webサーバーは...詳細については、Maximum on http header values?を参照してください。 Webサーバーが課す制限は、単一のヘッダーではなく、すべてのヘッダーの合計サイズに対する制限であることに注意してください。

関連する問題