そもそも
の、話は id:y_uuki さんのブログがよくまとまっています。
RFCはこちら RFC7540 日本語訳
本題
HTTP2.0 のことは分かったが、結局何をやればいいの?というのを箇条書きにすると以下が必要です。
- クライアント側のHTTP2対応
- WEBサーバー側のHTTP2対応
- TLS通信対応
- etc(ここがブラックボックス…)
1. クライアント側のHTTP2対応
HTTP2に対応しているブラウザなどを入れれば使えます。
対応ブラウザ
以下、Wikipediaさんより。
Windows7 以前はダメなんですね。
- Google Chrome (30は設定が必要)
- Mozilla Firefox (34から標準で有効)
- Windows 10上のInternet Explorer 11
- Microsoft Edge
- Opera
- Safari 9から
下記のサイトでも色々見れるます。 Can I use... Support tables for HTML5, CSS3, etc
アプリ開発では?
iOS
iOS9 から NSURLSession
が対応しています。
HTTP/2 support for iOS 8 | Apple Developer Forums
Android
ライブラリによりけりですが、 OkHttp とかが対応しているようです。
2. WEBサーバー側のHTTP2対応
対象にバージョンにアップデートしたり、モジュールを入れたりする必要があります。
こちらもWikipediaさんが見やすい。
- IIS (Windows 10)
- OpenLiteSpeed 1.3.11 および 1.4.8
- LiteSpeed Web Server 5.0
- Akamai Edge Servers
- nginx 1.9.5
- Apache 2.4.17
- h2o
例えば、対象バージョン以上の Apache にて mod_http2 入れればOKと言った感じです。
3. TLS通信対応
TLS 1.2 以上が必要となる。TLS 1.2の対応状況はこれまた Wikipedia さんより。
Transport Layer Security - Wikipedia
尚、認証局はほぼすべて対応していると思います。
4. etc
BIG-IP 12.0 から HTTP2 正式サポートとあったり、 Tomcat 9 からHTTP2が対応されたり。
全ての関わるミドルウェア・ソフトウェアの資料探しは難しく、自身の環境で使っているものの対応状況を調べたほうが現実的です。
本当は可能な限りまとめたかったけど、諦めました。
さいごに
結局自身の環境で使っているものは、全部確認がした方がいいという中途半端な内容に…。
こんなので閉じちゃっていいのかな。。
こんな記事より Wikipedia さんと Github にまとまっている一覧を見ればいいじゃんというオチでした。
HTTP/2 - Wikipedia
Implementations · http2/http2-spec Wiki · GitHub