隙あらば寝る

うぇぶのかいしゃではたらくえんじにあがかいています

HTTP/2? h2? h2c? って何?

ふと、HTTP/2って普段使われてるんだろうかという疑問が沸いた。

chromeの開発ツールでプロトコルを見ることができるので設定してgoogleアクセスを観察してみた。 (googleならHTTP/2やってるだろうという読み)

開発ツールを開いてネットワークタブを選択する。

ここでProtocolを表示項目に設定すると接続しているプロトコル情報も見れる。

リソースが表示されるテーブルのヘッダ部分を右クリックして、以下の画面で設定する。

f:id:yoru9zine:20161204172653p:plain:w200

(今回はProtocolだけ見られれば良いが、他にも色々な情報が表示可能になるのでオススメ)

で、googleにアクセスした画面が以下。

f:id:yoru9zine:20161204173101p:plain:w100

h2とは一体....HTTP/2ではないのか...と前置きが長くなったがここから本題。

知っている人にとっては当たり前な話なんだろうが、恥ずかしながら全然意識しておらず今日までさっぱり知らなかった。

ということでみんな大好きRFCを確認してみた。

RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)

HTTP/2 は RFC7540 らしい。

キーワードで検索しながら探すと 3.1. HTTP/2 Version Identification にしっかり書かれていた。

The string "h2" identifies the protocol where HTTP/2 uses Transport Layer Security (TLS) [TLS12].

The string "h2c" identifies the protocol where HTTP/2 is run over cleartext TCP.

ということで、h2 も h2c も HTTP/2 のこと、TLSによって暗号化がされているものがh2、暗号化されていないものがh2cという事だった。

そろそろ普通にアクセスする先でも使われている技術なので意識していきたい。