HTTP・Web 基礎難易度 基礎

状況

ブラウザで https://www.example.com/ を初めて開く。DNS のキャッシュも、既存の接続も無い。通信は HTTP/1.1 か HTTP/2 で行う(HTTP/3 は使わない)。

ブラウザが行う順番に並べてください。

正答

  • TLS ハンドシェイクをしてサーバー証明書を検証する
  • HTTP リクエスト(GET /)を送る
  • DNS でホスト名から IP アドレスを調べる
  • サーバーの 443 番と TCP 接続を確立する
正しい順番
  1. DNS でホスト名から IP アドレスを調べる
  2. サーバーの 443 番と TCP 接続を確立する
  3. TLS ハンドシェイクをしてサーバー証明書を検証する
  4. HTTP リクエスト(GET /)を送る

解説

TCP 接続には相手の IP アドレスが要るので、最初に DNS で名前を解決する。次に 443 番と TCP 接続を確立し、その上で TLS ハンドシェイクをして証明書を検証し、暗号化の鍵を決める。HTTP リクエストは暗号化された経路の上で最後に送る。HTTP リクエストを TLS より先に送ると、パスや Cookie が平文で流れてしまう。証明書の検証で失敗した場合、リクエストは送られないので、サーバーのアクセスログにも残らない。

参考: developer.mozilla.org

httpsdnstcptls

この問題を含む HTTP・Web 基礎 のテストを制限時間つきで解く

HTTP・Web 基礎クイズへ