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 |