#?SuikaWikiImage/0.9 page-icon="HTTP" image-type="image/png" image-alt="HTTP" [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[[実現値]]であると考えられています。 __IMAGE__ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEUAAACAAAAAgACAgAAA AICAAIAAgIDAwMDA3MCmyvD/8NT/4rH/1I7/xmv/uEj/qiX/qgDckgC5egCWYgBzSgBQMgD/ 49T/x7H/q47/j2v/c0j/VyX/VQDcSQC5PQCWMQBzJQBQGQD/1NT/sbH/jo7/a2v/SEj/JSX+ AADcAAC5AACWAABzAABQAAD/1OP/scf/jqv/a4//SHP/JVf/AFXcAEm5AD2WADFzACVQABn/ 1PD/seL/jtT/a8b/SLj/Jar/AKrcAJK5AHqWAGJzAEpQADL/1P//sf//jv//a///SP//Jf/+ AP7cANy5ALmWAJZzAHNQAFDw1P/isf/Ujv/Ga/+4SP+qJf+qAP+SANx6ALliAJZKAHMyAFDj 1P/Hsf+rjv+Pa/9zSP9XJf9VAP9JANw9ALkxAJYlAHMZAFDU1P+xsf+Ojv9ra/9ISP8lJf8A AP4AANwAALkAAJYAAHMAAFDU4/+xx/+Oq/9rj/9Ic/8lV/8AVf8ASdwAPbkAMZYAJXMAGVDU 8P+x4v+O1P9rxv9IuP8lqv8Aqv8AktwAerkAYpYASnMAMlDU//+x//+O//9r//9I//8l//8A /v4A3NwAubkAlpYAc3MAUFDU//Cx/+KO/9Rr/8ZI/7gl/6oA/6oA3JIAuXoAlmIAc0oAUDLU /+Ox/8eO/6tr/49I/3Ml/1cA/1UA3EkAuT0AljEAcyUAUBnU/9Sx/7GO/45r/2tI/0gl/yUA /gAA3AAAuQAAlgAAcwAAUADj/9TH/7Gr/46P/2tz/0hX/yVV/wBJ3AA9uQAxlgAlcwAZUADw /9Ti/7HU/47G/2u4/0iq/yWq/wCS3AB6uQBilgBKcwAyUAD//9T//7H//47//2v//0j//yX+ /gDc3AC5uQCWlgBzcwBQUADy8vLm5uba2trOzs7CwsK2traqqqqenp6SkpKGhoZ6enpubm5i YmJWVlZKSko+Pj4yMjImJiYaGhoODg7/+/CgoKSAgID/AAAA/wD//wAAAP//AP8A///////g 951TAAABAHRSTlP/AP////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////rTvm KwAAABx0RVh0U29mdHdhcmUAS0ggU29mdHdhcmUgRmFjdG9yeU6klJ0AAABaSURBVHichY9R CsAwCEObO9kTCTuX4EUbrStbV1h+gg+MsWFT+wIRKBVuRtC7XJTS3UkIUAAeJDM4zwCSArjB 6UpIayVCnxmWK7xPMHsEePVwrB7IHudf/sAAclAnUDDAE7IAAAAASUVORK5CYII=