ホームページ > Java > &#&チュートリアル > Java の HttpURLConnection が HTTP から HTTPS へのリダイレクトに従わないのはなぜですか?

Java の HttpURLConnection が HTTP から HTTPS へのリダイレクトに従わないのはなぜですか?

DDD
リリース: 2024-12-06 21:28:17
オリジナル
475 人が閲覧しました

Why Does Java's HttpURLConnection Fail to Follow HTTP to HTTPS Redirects?

HTTP から HTTPS への HTTP リダイレクトにより接続エラーが発生する

Java の HttpURLConnection を使用して HTTP から HTTPS へのリダイレクトをたどろうとすると、予期せず失敗する可能性があります失敗。この問題は、HttpURLConnection の followRedirect() メソッドが同じプロトコル内のリダイレクトのみに従うために発生します。

提供されたコードでは、「http://httpstat.us/301」に対してリクエストが行われ、301 Moved が返されます。 URL の HTTPS バージョンへのリダイレクトを示す永続的な応答。ただし、HttpURLConnection はこのリダイレクトに従いません。

これはなぜ発生しますか? HTTP プロトコル仕様では、HTTP と HTTPS は別個のプロトコルとみなされます。 HTTPS は HTTP を厳密に反映していますが、HTTP フレームワーク内では公式に認識されていません。したがって、HttpURLConnection は、追加の構成を行わなくても、セキュリティ上の理由から HTTPS を別個のプロトコルとして扱うように設計されています。

ユーザーの同意なしに HTTP と HTTPS の間でリダイレクトを行うと、セキュリティ リスクが生じる可能性があります。たとえば、HTTP 接続に対してクライアント認証が自動的に有効になる可能性がありますが、ユーザーは匿名で閲覧することを意図している可能性があります。接続が HTTPS リダイレクトに自動的に従う場合、ユーザーの ID が誤ってサーバーに公開される可能性があります。

そのため、セキュリティを維持するために、HttpURLConnection はデフォルトで HTTP から HTTPS へのリダイレクトに従いません。この動作は無効にできません。Java プログラムで HTTP リダイレクトを使用する場合は、この制限に注意することが重要です。

以上がJava の HttpURLConnection が HTTP から HTTPS へのリダイレクトに従わないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート