概要

  • HTTP/2では、一つのTCPコネクションを使い回し、その中でHTTPリクエストとHTTPレスポンスを多重化することで、複数のHTTPメッセージを上限なく並列的にやりとりすることができる
  • 多重化を実現するために、HTTP/2では仮想的な通信単位であるストリームという概念を導入しており、ストリームごとにフレームというメッセージをやりとりする
  • HTTP/2では、フレームというバイナリ形式のメッセージをやりとりする
  • HTTP/2においてTLSを使用する場合は以下を守る必要がある
    • TLS 1.2以上を使用する
    • SNI(Server Name Indication)をサポートする
    • 仕様で指定される暗号スイートを使用する
    • TLSの圧縮機能を無効にする
    • TLSの再ネゴシエーションを使用しない

h2, h2c

h2:HTTP/2 over TLS

  • TLS を用いた暗号化通信を行う

h2c:HTTP/2 over cleartext TCP

  • TLSを用いないで平文(Cleartext)で通信を行う

対応状況

ブラウザ

  • 一般的なブラウザは h2 のみに対応しているため、実質的に h2 が必須となっている
  • h2 で用いる TLS には以下の要件がある
    • TLS のバージョンは 1.2 以上
    • SNI 拡張の対応が必要
      • クライアントは TLS のネゴシエーションの際に、対象のドメイン名を示す必要がある
    • TLS 1.2 の場合は暗号化スイートに以下の要件あり
      • RFC 7540 のブラックリストに記載された暗号化スイートを使うべきではない
      • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 への対応が必須

動作確認事例

SPDY


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-18 (水) 11:03:48 (1255d)