HTTPSに自動で切り替えるChromeのHTTPS Upgradeについて

Chromeではバージョン115 (6月リリース予定)で、『HTTPS Upgrade』という機能が導入される予定です。これは、ナビゲーション時にHTTPからHTTPSに自動でアップグレードするものです。
chromestatus.com

その動作についてドキュメントを読む

背景

HTTPS Upgrade』を導入する背景としては

多くのWebサイトがHTTPSに対応していますが、いくつかのケースでHTTPのアクセスがあり、それらを保護するためです。

HTTPSをサポートしているページでもHTTPをリッスンしている場合は、次のケースでHTTPアクセスが発生します

  • HSTS Preloadを登録していないケース
  • HSTSを利用していても、初回のアクセスするケース
  • HSTSを利用しておらず、HTTPをHTTPSにリダイレクトしないケース

動作

一言でその動作を表現すれば、『ナビゲーションの際に自動でHTTPからHTTPSに切り替える』というものです。もちろん、HTTPSでの接続に失敗した場合は、HTTPにフォールバックします。

細かい仕様については、whatwgのfetchの仕様にプルリクを確認することが出来ます
github.com

幾つかの具体動作
  • サブリソース: 今回の変更の影響は受けない。(ユーザエージェントによりmixed contentの自動Upgradeするものもある)
  • URLバーナビゲーション: http:// が指定された場合は自動Upgradeしない
  • Javascriptナビゲーション: window.locationなどによるナビゲーションは自動Upgradeの対象
  • POSTリクエスト: FormなどによりPOSTリクエストによるページ遷移は対象外 (mixed contentの対象ではある)
  • リダイレクトループ: リダイレクト処理は自動Upgradeの対象で、HTTPからHTTPSにアップグレードされるが、リダイレクトループするばあいはフォールバックしてhttpでアクセスする。

試す

Chromeバージョン111より、chrome://flags のページから下記を有効にすると試せる