[7] [DFN@en[[[HTTP]]]] ([DFN@en[[[Hypertext Transfer Protocol]]]]) は、 [[World Wide Web]] で用いられている[[ネットワーク・プロトコル]]です。 元々は[[ハイパーテキスト]]の転送のための[[クライアント鯖型]]の[[アプリケーション層プロトコル]]でしたが、 現在では[[ハイパーテキスト]]に限らず様々な[[データ]]の転送に用いられています。 [[インターネット]]技術を流用したシステムでは[[セッション層]] (あるいは[[オーバーレイ・ネットワーク層]]の[[プロトコル]]であるかのように用いられることすらあります。 * 呼称 [8] HTTP protocol と書くのは変だと思うけど、仕様書 (例えば RFC 2616) も使ってるしなー。 * 版 [9] [[HTTP]] には [[HTTP/0.9]]、[[HTTP/1.0]]、[[HTTP/1.1]] の3つの[[版]]があります。 [10] 現実に [[Web]] で用いられている[[鯖]]や[[クライアント]] [WEAK[([[HTTP]] では通常[[利用者エージェント]] ([[UA]]) と呼ばれます。)]] はこのうち1つ以上に対応しています [WEAK[(ほとんどの場合、最低でも [[HTTP/1.0]] に対応しています)]]。 ただし [[HTTP]] は非常に様々な機能を含んだ膨大な仕様で、 そのうちのどの部分に対応しているかは実装により異なります。 [11] [[HTTP/0.9]] は [[HTTP/1.[VAR[x]]]] と互換性がありません。 [[HTTP/1.0]] と [[HTTP/1.1]] は[[メッセージ]]のレベルでの互換性がありますが、 [[TCP]] [RUBY[[[接続]]]@en[[[コネクション]]]]の利用方法が異なります [WEAK[([[HTTP/1.1]] の方が高機能です)]]。 * 仕様書 - [[HTTP/1.0]] RFC 1945 - [[HTTP/1.1]] RFC 2068 - [[HTTP/1.1]] RFC 2616 - 2069 An Extension to HTTP : Digest Access Authentication. J. Franks, P. Hallam-Baker, J. Hostetler, P. Leach, A. Luotonen, E. Sink, L. Stewart. January 1997. (Format: TXT=41733 bytes) (Obsoleted by RFC2617) (Status: PROPOSED STANDARD) - 2109 HTTP State Management Mechanism. D. Kristol, L. Montulli. February 1997. (Format: TXT=43469 bytes) (Obsoleted by RFC2965) (Status: PROPOSED STANDARD) ([[Cookie]]) - [[RFC2145]] Use and Interpretation of HTTP Version Numbers. J. C. Mogul, R. Fielding, J. Gettys, H. Frystyk. May 1997. (Format: TXT=13659 bytes) (Status: INFORMATIONAL) - 2295 Transparent Content Negotiation in HTTP. K. Holtman, A. Mutz. March 1998. (Format: TXT=125130 bytes) (Status: EXPERIMENTAL) - 2296 HTTP Remote Variant Selection Algorithm -- RVSA/1.0. K. Holtman, A. Mutz. March 1998. (Format: TXT=26932 bytes) (Status: EXPERIMENTAL) - 2310 The Safe Response Header Field. K. Holtman. April 1998. (Format: TXT=8091 bytes) (Status: EXPERIMENTAL) - 2518 HTTP Extensions for Distributed Authoring -- WEBDAV. Y. Goland, E. Whitehead, A. Faizi, S. Carter, D. Jensen. February 1999. (Format: TXT=202829 bytes) (Status: PROPOSED STANDARD) - 2617 HTTP Authentication: Basic and Digest Access Authentication. J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen, L. Stewart. June 1999. (Format: TXT=77638 bytes) (Obsoletes RFC2069) (Status: DRAFT STANDARD) - 2660 The Secure HyperText Transfer Protocol. E. Rescorla, A. Schiffman. August 1999. (Format: TXT=95645 bytes) (Status: EXPERIMENTAL) - 2732 Format for Literal IPv6 Addresses in URL's. R. Hinden, B. Carpenter, L. Masinter. December 1999. (Format: TXT=7984 bytes) (Status: PROPOSED STANDARD) - 2756 Hyper Text Caching Protocol (HTCP/0.0). P. Vixie, D. Wessels. January 2000. (Format: TXT=32176 bytes) (Status: EXPERIMENTAL) - 2774 An HTTP Extension Framework. H. Nielsen, P. Leach, S. Lawrence. February 2000. (Format: TXT=39719 bytes) (Status: EXPERIMENTAL) - 2817 Upgrading to TLS Within HTTP/1.1. R. Khare, S. Lawrence. May 2000. (Format: TXT=27598 bytes) (Updates RFC2616) (Status: PROPOSED STANDARD) - 2818 HTTP Over TLS. E. Rescorla. May 2000. (Format: TXT=15170 bytes) (Status: INFORMATIONAL) - 2935 Internet Open Trading Protocol (IOTP) HTTP Supplement. D. Eastlake, C. Smith. September 2000. (Format: TXT=16168 bytes) (Status: PROPOSED STANDARD) - [[RFC2936]] HTTP MIME Type Handler Detection. D. Eastlake, C. Smith, D. Soroka. September 2000. (Format: TXT=25238 bytes) (Status: INFORMATIONAL) - 2964 Use of HTTP State Management. K. Moore, N. Freed. October 2000. (Format: TXT=18899 bytes) (Also BCP0044) (Status: BEST CURRENT PRACTICE) - [[RFC2965]] HTTP State Management Mechanism. D. Kristol, L. Montulli. October 2000. (Format: TXT=56176 bytes) (Obsoletes RFC2109) (Status: PROPOSED STANDARD) ([[Cookie]]) - 3143 Known HTTP Proxy/Caching Problems. I. Cooper, J. Dilley. June 2001. (Format: TXT=57117 bytes) (Status: INFORMATIONAL) - 3205 On the use of HTTP as a Substrate. K. Moore. February 2002. (Format: TXT=34785 bytes) (Also BCP0056) (Status: BEST CURRENT PRACTICE) - 3229 Delta encoding in HTTP. J. Mogul, B. Krishnamurthy, F. Douglis, A. Feldmann, Y. Goland, A. van Hoff, D. Hellerstein. January 2002. (Format: TXT=111953 bytes) (Status: PROPOSED STANDARD) - 3230 Instance Digests in HTTP. J. Mogul, A. Van Hoff. January 2002. (Format: TXT=26846 bytes) (Status: PROPOSED STANDARD) - 3253 Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning). G. Clemm, J. Amsden, T. Ellison, C. Kaler, J. Whitehead. March 2002. (Format: TXT=245514 bytes) (Status: PROPOSED STANDARD) - ''HTTP/1.1 Specification Errata'' RFC 2616, 2617 の修正 - [[RFC2227]]. Proposed Standard "Simple Hit-Metering and Usage-Limiting for HTTP", J. Mogul, P. Leach, October 1997. - [HTTP92] ''HTTP: A protocol for networked information'' - ''Common HTTP Implementation Problems'' -- HTTP (及び隣接する [[URI]], [[HTML]] の一部) についてのチェック集。 快適な [[WWW]] 生活(謎)のために最低限必要なサーバーの配慮をまとめたメモ。 ([[HTML]] [[UA]] でいう [[WAI]] みたいなものかな。) -- いい仕事してますね、 [[W3C]]。 - ''Common User Agent Problems'' -- こっちは [[UA]] の視点から見た [[HTTP]] (など) の実装上の問題点。 ** 標準化 [12] [[HTTP]] は元々 [[TimBL]] により考案され、 [[CERN]] を中心とする [[WWW]] プロジェクトにより発展させられてきましたが、 [[IETF]] に [[HTTP WG]] ([[ietf-http]]) が設けられてからは主にそこで標準化が進められてきました。 [13] [[IETF]] [[HTTP WG]] は当時の実装の大枠を反映して [[HTTP/0.9]] と [[HTTP/1.0]] を規定した [[RFC 1945]] を[[情報提供RFC]] とした後、改良を加えた新版 [[HTTP/1.1]] を[[提案標準]] [[RFC 2068]] として発行しました。 [[RFC 2068]] は更に改訂されて[[原案標準]] [[RFC 2616]]、[[RFC 2617]] となりました。 - ''IETF - Hypertext Transfer Protocol (HTTP) Working Group'' (ietf-http) - ↑この ietf-http の頁は [[RFC]] になっている [[I-D]] がまだのように載ってたり、古い内容のままですね。 (ietf-http 閉鎖よりまだ前なのかな?) - ''HTTP - Hypertext Transfer Protocol Overview'' [14] [[HTTP]] については中核仕様の他に様々な拡張・派生仕様が策定されました。例えば [[IETF]] [[WebDAV]] [[WG]] ([[ietf-webdav]]) は [[HTTP]] を[[ストレージ]]的に利用可能な [[WebDAV]] 仕様を [[HTTP]] の拡張として定義しました。 - ''IETF WEBDAV Working Group Home Page'' ietf-webdav [15] その他、 [[IETF]] では [[HTTP]] 派生仕様として [[RTSP]] や [[SIP]] が標準化されています。 [16] 2008年頃には [[HTTP/1.1]] 仕様の改訂の機運が高まり、 [[ietf-httpbis]] [[WG]] が設置されています。 [17] [[HTTP]] の標準化は基本的に [[IETF]] で行われていますが、歴史的経緯により [[W3C]] が積極的に関わっています。最近では [[HTML5]] 機能などに関して [[WHATWG]] 界隈での活動も活発になっています。 * REST との関係 [18] [[HTTP]] を含む [[Web]] は [[REST]] [[体系様式]]の1[[実現値]]であると考えられています。 * メモ [19] [CITE[IRC logs: freenode / #whatwg / 20091013]] ([TIME[2009-12-09 08:43:01 +09:00]] 版) [20] [CITE[Design Issues for HTTP]] ([TIME[1997-06-06 04:48:52 +09:00]] 版) [21] [CITE[Hypertext Transfer Protocol Version 1.x]] ([TIME[2000-09-27 19:46:32 +09:00]] 版) [22] [CITE@en-US[HTTP - Hypertext Transfer Protocol Overview]] ([TIME[2009-10-26 18:38:01 +09:00]] 版) [23] [CITE[HTTP Problem Statement]] ([TIME[1997-06-06 06:45:05 +09:00]] 版) [24] ( ([TIME[1993-11-05 09:08:00 +09:00]] 版))