#author("2020-10-22T06:33:15+00:00","default:admin","admin")
#author("2020-11-18T02:03:48+00:00","default:admin","admin")
-[[HTTP/2とは:https://www.nic.ad.jp/ja/newsletter/No68/0800.html]]

-[[普及が進む「HTTP/2」の仕組みとメリットとは:https://knowledge.sakura.ad.jp/7734/]]
-[[【図解】HTTP/2って?HTTP/1.1との違いと導入メリット・課題まとめ:https://www.kagoya.jp/howto/webhomepage/http-2/]]

-[[実はHTTPSは速い!次世代プロトコル”HTTP/2″でサイト表示が高速化:https://www.idcf.jp/rentalserver/aossl/basic/response/]]

-[[「HTTP/2通信されているか?」をブラウザで手軽に判別する方法:https://nelog.jp/http2-browser-extensions]]

*概要 [#fdc0b446]
-HTTP/2では、一つのTCPコネクションを使い回し、その中でHTTPリクエストとHTTPレスポンスを多重化することで、複数のHTTPメッセージを上限なく並列的にやりとりすることができる
-多重化を実現するために、HTTP/2では仮想的な通信単位であるストリームという概念を導入しており、ストリームごとにフレームというメッセージをやりとりする
-HTTP/2では、フレームというバイナリ形式のメッセージをやりとりする

-HTTP/2においてTLSを使用する場合は以下を守る必要がある
--TLS 1.2以上を使用する
--SNI(Server Name Indication)をサポートする
--仕様で指定される暗号スイートを使用する
--TLSの圧縮機能を無効にする
--TLSの再ネゴシエーションを使用しない

**h2, h2c [#q0647dcc]
-[[HTTP/2: ちょっと詳細: プロトコルネゴシエーション編:https://qiita.com/kitauji/items/3bf03533895251c93af2]]

***h2:HTTP/2 over TLS [#kd5d123a]
-TLS を用いた暗号化通信を行う

***h2c:HTTP/2 over cleartext TCP [#h25b727e]
-TLSを用いないで平文(Cleartext)で通信を行う

**対応状況 [#z242ef5d]
-[[Implementations - http2-spec:https://github.com/httpwg/http2-spec/wiki/Implementations]]

***ブラウザ [#q5ec960f]
-一般的なブラウザは h2 のみに対応しているため、実質的に h2 が必須となっている

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

*動作確認事例 [#pd1f7465]
-[[Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。:https://http2.try-and-test.net/debug.html]]

*SPDY [#x3f13aa6]
-[[Google、「SPDY」終了と「HTTP/2」サポートを発表:https://www.itmedia.co.jp/news/articles/1502/10/news060.html]]
-[[解説!SPDYから進化を遂げたHTTP/2の概要と特徴:https://www.sakurasaku-labo.jp/blogs/http2-beginners]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS