SPDYとHTTP/2のプロトコルサポート

SPDYとHTTP/2の概要

SPDY(スピーディー)はHTTPを基にに高速化を行ったプロトコルである。TLS接続の上にセッション層を追加し、単一のSPDYセッションで複数のリクエストを送受信する。TLSの拡張仕様の一つであるApplication-Layer Protocol Negotiation (ALPN) をベースにしているのでHTTPSを使っての通信が必須となっている。SPDYとしての最終バージョンはSPDY3.1で SPDY/4 は HTTP/2 に吸収された。

HTMLの読み込みの高速化は帯域の増加よりもRTT短縮の方が効果が高い。HTTP1.1では最大接続数を超えるリクエストはダンロード開始待ちが発生していたが、SPDYではリクエストが同時に行われることで、読み込みが高速化される。ただし、SPDYは大量のリソース使っているサイトでは効果が高いが、少ない場合には効果が薄い。また、サードパーティドメインのリソースではそれぞれのドメインに対する接続オーバーヘッドが発生する。回線の品質が悪くパケットロスが多く発生する場合にはHTTP1.1よりも性能が劣化することになる。

対応状況

クライアントの対応状況
クライアント名 platform SPDY HTTP/2
Chrome 10 All Platoform Yes No
Chrome 40 All Platoform Yes
(SPDY/3.1)
No
Chrome 41–current All Platoform Yes
(SPDY/3.1)
Currently only HTTP/2 over TLS
Firefox 13 All Platoform Yes
(SPDY/2)
No
Firefox 15 All Platoform Yes
(SPDY/2, 3)
No
Firefox 27 All Platoform Yes
(SPDY/2, 3, 3.1)
No
Firefox 28 All Platoform Yes
(SPDY/3, 3.1)
No
Firefox 36–current All Platoform Yes
(SPDY/3, 3.1)
Currently only HTTP/2 over TLS
IE 11 Windows 8,
Windows 8.1
Yes
(SPDY3)
No
Safari 8 OS X yosemite(10.10) Yes
(SPDY/2, 3, 3.1)
No
Safari iOS8 Yes
(SPDY/2, 3, 3.1)
No
クライアント名 platform SPDY HTTP/2
サーバーの対応状況
サーバー名 SPDY HTTP/2
Nginx 1.5.10 Yes
(SPDY/3.1)
Yes
Apache 2.2 + mod_spdy Yes
(SPDY/3)
no
Apache + mod_h2 no Yes
Apache Tomcat8 Yes
(Experimental)
No
Jetty 7.x Yes No
Jetty 9.3 Yes Yes
Wildfly No No
Netty Yes Yes
サーバー名 SPDY HTTP/2

参考