51082


HttpURLConnectionとリダイレクトについて調べています。

・http->http  
HttpURLConnection#setInstanceFollowRedirectsで追跡の可否を設定できる。  
・http->https, https->http  
プロトコルが異なるため追跡しない。

上記については情報が見つかるのですが、以下のケースにおいてどういった挙動になるのかが不明です。

・https->https  
http->httpと同様に追跡の可否を設定できるのか？

どなたがご存知の方、ご教授願います。


CC BY-SA 4.0
2018-12-09T03:42:34.287
51054
2018-12-10T04:34:21.700
31368
question
java
HttpURLConnectionとリダイレクトについて


`HTTPS`から`HTTPS`への自動リダイレクトは機能します。

  * `HttpsURLConnection` に [`setInstanceFollowRedirects`メソッド](https://docs.oracle.com/javase/jp/8/docs/api/javax/net/ssl/HttpsURLConnection.html#methods.inherited.from.class.java.net.HttpURLConnection)が存在することから半ば自明かと思われます
  * 該当する実装は(`HTTP`も`HTTPS`も同じく) [`sun/net/www/protocol/http/HttpURLConnection.java`](https://github.com/AdoptOpenJDK/openjdk-jdk8u/blob/master/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java#L2614)のようです

補足:

  * デフォルト実装において`HTTP`->`HTTPS`自動リダイレクトが行われない理由はこちらにありました: [URLConnection Doesn't Follow Redirect - Stack Overflow](https://stackoverflow.com/questions/1884230/urlconnection-doesnt-follow-redirect#comment1784909_1884427)
  * (上記はあくまでデフォルト実装についてなので、`HTTP`->`HTTPS`自動リダイレクトするようなカスタム実装の[ **プロトコル・ハンドラ**](https://docs.oracle.com/javase/jp/8/docs/api/java/net/package-summary.html)も存在するかもしれません)


CC BY-SA 4.0
2018-12-10T04:34:21.700
51082
2018-12-10T04:34:21.700
2808
51054
answer