HTTP

HTTP

[7] HTTP (Hypertext Transfer Protocol) は、 World Wide Web で用いられているネットワーク・プロトコルです。 元々はハイパーテキストの転送のためのクライアント鯖型アプリケーション層プロトコルでしたが、 現在ではハイパーテキストに限らず様々なデータの転送に用いられています。 インターネット技術を流用したシステムではセッション層 (あるいはオーバーレイ・ネットワーク層プロトコルであるかのように用いられることすらあります。

呼称

[8] HTTP protocol と書くのは変だと思うけど、仕様書 (例えば RFC 2616) も使ってるしなー。

[9] HTTP には HTTP/0.9HTTP/1.0HTTP/1.1 の3つのがあります。

[10] 現実に Web で用いられているクライアント (HTTP では通常利用者エージェント (UA) と呼ばれます。) はこのうち1つ以上に対応しています (ほとんどの場合、最低でも HTTP/1.0 に対応しています)。 ただし HTTP は非常に様々な機能を含んだ膨大な仕様で、 そのうちのどの部分に対応しているかは実装により異なります。

[11] HTTP/0.9HTTP/1.x と互換性がありません。 HTTP/1.0HTTP/1.1メッセージのレベルでの互換性がありますが、 TCP 接続 (コネクション) の利用方法が異なります (HTTP/1.1 の方が高機能です)

仕様書

標準化

[12] HTTP は元々 TimBL により考案され、 CERN を中心とする WWW プロジェクトにより発展させられてきましたが、 IETFHTTP WG (ietf-http) が設けられてからは主にそこで標準化が進められてきました。

[13] IETF HTTP WG は当時の実装の大枠を反映して HTTP/0.9HTTP/1.0 を規定した RFC 1945情報提供RFC とした後、改良を加えた新版 HTTP/1.1提案標準 RFC 2068 として発行しました。 RFC 2068 は更に改訂されて原案標準 RFC 2616RFC 2617 となりました。

  • IETF - Hypertext Transfer Protocol (HTTP) Working Group <http://ftp.ics.uci.edu/pub/ietf/http/> (ietf-http)
  • ↑この ietf-http の頁は RFC になっている I-D がまだのように載ってたり、古い内容のままですね。 (ietf-http 閉鎖よりまだ前なのかな?)
  • HTTP - Hypertext Transfer Protocol Overview <http://www.w3.org/Protocols/>

[14] HTTP については中核仕様の他に様々な拡張・派生仕様が策定されました。例えば IETF WebDAV WG (ietf-webdav) は HTTPストレージ的に利用可能な WebDAV 仕様を HTTP の拡張として定義しました。

[15] その他、 IETF では HTTP 派生仕様として RTSPSIP が標準化されています。

[16] 2008年頃には HTTP/1.1 仕様の改訂の機運が高まり、 ietf-httpbis WG が設置されています。

[17] HTTP の標準化は基本的に IETF で行われていますが、歴史的経緯により W3C が積極的に関わっています。最近では HTML5 機能などに関して WHATWG 界隈での活動も活発になっています。

REST との関係

[18] HTTP を含む WebREST 体系様式の1実現値であると考えられています。

HTTP