はじめに: 試した環境
Windows10 の現時点での最新安定版 Google Chrome および Firefox を用いました。
- Google Chrome 78.0.3904.108
- Firefox 70.0.1
また実行に際しては、キャッシュ等の影響を避けるため、Chrome ではゲストモード、Firefox では今回新規作成したプロファイルで確認しました。
やってみよう
Google Chrome の URL バー(Omnibar)に https://hatena.ne.jp/ と入力してエンターを押してみよう!
トップページが表示されましたか?
あちゃー!😣 表示されちゃいましたか!😵
それでは次に Firefox で同じことをやってみます。
あれ ❔Chrome と Firefox で表示されてるものが違うんですけど ❔❔🤔🤔 どっちが正しいの ❔❔❔😟😟😟
あっあれだ。Google が URL を殺すって言ってたやつだ。Omnibar に殺された URL を掘り返してみれば何かわかるかも!!!(Omnibar のクリックを繰り返しつつ)
はい出たーやっぱりねー https://www.
隠れてたーそら Firefox と違う URL なんだから違う内容表示されるわー
ってなんで入力した URL と違うページ表示してんねん
いやいやおつちけそれこそよくある302
でリダイレクトさせてるやつやろあれでもじゃあ Firefox がリダイレクトされてないのはなんでなんだ
そうだ DevTools、行こう
はい 302
が出て…
なーい!なんや “(failed)” て!
(余白)
解決編
いやまあ、DevTools の console を見ればわかることなんですけれども。
Redirecting navigation hatena.ne.jp -> www.hatena.ne.jp because the server presented a certificate valid for www.hatena.ne.jp but not for hatena.ne.jp. To disable such redirects launch Chrome with the following flag: –disable-features=SSLCommonNameMismatchHandling
関連する issue は多分これ:
証明書見てサブドメイン違うかったら勝手に証明書に書いてある方にリダイレクトするよ、という挙動みたいです。
--disable-features=SSLCommonNameMismatchHandling
付けて起動すると Firefox と同じ挙動になります。
まとめ
Google Chrome は、
- Omnibar がサブドメインを隠す
- サブドメイン間違ってたら勝手リダイレクトする
という仕様のコンボで、思ってた URL と違うものを表示していることがあります。