STEAM PLACE

エンジニアリングとマネジメント

で、 HTTP2.0 対応って何をすればいいの?

f:id:dskst9:20160207182406j:plain

そもそも

の、話は id:y_uuki さんのブログがよくまとまっています。

yuuki.hatenablog.com

RFCはこちら RFC7540 日本語訳

スポンサーリンク

本題

HTTP2.0 のことは分かったが、結局何をやればいいの?というのを箇条書きにすると以下が必要です。

  1. クライアント側のHTTP2対応
  2. WEBサーバー側のHTTP2対応
  3. TLS通信対応
  4. 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