HTTP 0.9

RFC (rfc:1945) は1996年 (HTTP 1.0と同じRFCで説明されてる)

最初の HTTP。GET メソッドしかなかった。レスポンスヘッダもない (ボディーだけ)。

HTTP 1.0

RFC (rfc:1945) は1996年

  • メソッドに GET POST HEAD が追加された
  • ヘッダが追加された

HTTP 1.1

RFC (rfc:2068 → rfc2616) は1997年

HTTP 1.0 に Keep Alive とかを追加したやつ。

  • バーチャルホストに対応 (Host ヘッダが必須に)
  • Keep Alive が可能
    • 1つのTCPセッションで複数のファイルのやりとりができる
  • リクエストパイプラインが可能
    • リクエストを複数個レスポンスを待たずに送ることができる
    • サーバ側で対応が必要なのであまり有効活用されてない

HTTPS

RFC (rfc:2817, rfc:2818) は2000年

HTTP 1.0 または 1.1 を TLS (暗号化層) にのっけたもの (暗号化通信)

(SSL は TLS の元になったプロトコルの名前)

WebSocket

RFC (rfc:6455) は2011年。HTTP を拡張したもの、と言っていいか微妙だけど、HTTP でセッションを初期化して 101 Switching Protocols で専用プロトコルに切り替わる関連技術的なもの。

  • ブラウザでソケットのようにサーバと自由に送受信ができるようにするのが目的
  • サーバプッシュが可能
  • 普通 JS と一緒に使う

SPDY

Google が作ったプロトコル。現在は SPDY Protocol - Draft 3.1 が最新。

  • レンテンシを低くするのが目的
  • HTTPS のように TLS (暗号化層) にのっかってるので、常に暗号化通信
  • HTTP は SPDY プロトコル上にのっかる感じに
  • サーバープッシュが可能
  • サーバーヒント
    • 予め必要そうなファイルをサーバから送りつけることができる

HTTP 2.0

SPDY を元に提唱されてる新しい HTTP のバージョン。SPDY を HTTP 2.0 として標準化しよう、って感じかな。現状では SPDY と一緒。

QUIC

Google が作ってるあたらしいプロトコル。上記までのような HTTP の互換レイヤーの話ではなく、その下のレイヤーのプロトコル。

  • レンテンシを低くするのが目的
  • TCP の代替

技術の発展とともに TCP がネックになることが増えてきたので、UDP を使って TCP+TLS レイヤーを実装しなおすという感じ。

わからないところ

未来における WebSocket の立ち位置がよくわからない。HTTP 2.0 になったとして (SPDY 実装はすすんでいるし、たぶんなるだろう)、WebSocket はどうなるだろう。HTTP 2.0 上で WebSocket を使うのか、あるいは HTTP 2.0 のセッションを JS からコントロールできるような API が整備されるのか。

  1. トップ
  2. tech
  3. SPDY とか新しいプロトコルがよくわからないので簡単にまとめた
  1. トップ
  2. http
  3. SPDY とか新しいプロトコルがよくわからないので簡単にまとめた