/
48.txt
212 lines (175 loc) · 10.4 KB
/
48.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
[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]] の方が高機能です)]]。
* 周辺仕様
- [[HTTPS]]
- [[HTTP認証]]
- [[Cookie]]
- [[HTST]]
- [[HTTP CORS Protocol]]
- [[Same-origin policy]]
- [[WebDAV]]
- [[AtomPub]]
- [[Web Sockets]]
* 仕様書
- [[HTTP/1.0]] RFC 1945 <urn:ietf:rfc:1945>
- [[HTTP/1.1]] RFC 2068 <urn:ietf:rfc:2068>
- [[HTTP/1.1]] RFC 2616 <urn:ietf: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'' <http://world.std.com/~lawrence/http_errata.html> 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'' <http://www.w3.org/Protocols/HTTP/HTTP2.html>
- ''Common HTTP Implementation Problems'' <http://www.w3.org/TR/chips/>
-- HTTP (及び隣接する [[URI]], [[HTML]] の一部) についてのチェック集。
快適な [[WWW]] 生活(謎)のために最低限必要なサーバーの配慮をまとめたメモ。
([[HTML]] [[UA]] でいう [[WAI]] みたいなものかな。)
-- いい仕事してますね、 [[W3C]]。
- ''Common User Agent Problems'' <http://www.w3.org/TR/cuap>
-- こっちは [[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'' <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]] の拡張として定義しました。
- ''IETF WEBDAV Working Group Home Page'' <http://www.ics.uci.edu/~ejw/authoring/> ietf-webdav
[15] その他、 [[IETF]] では [[HTTP]] 派生仕様として [[RTSP]] や [[SIP]]
が標準化されています。
[16] 2008年頃には [[HTTP/1.1]] 仕様の改訂の機運が高まり、 [[ietf-httpbis]]
[[WG]] が設置されています。
[17] [[HTTP]] の標準化は基本的に [[IETF]] で行われていますが、歴史的経緯により
[[W3C]] が積極的に関わっています。最近では [[HTML5]] 機能などに関して [[WHATWG]]
界隈での活動も活発になっています。
* 派生プロトコル
[29] 派生といっても色々な度合いがありますが...
- [[HTCPCP]]
- [[RTSP]]
- [[SIP]]
- [[MRSP]]
- [[SSTP]]
- [[S-HTTP]]
- [[Reverse HTTP]]
- [[Web Sockets]]
- [[SPDY]]
* REST との関係
[18] [[HTTP]] を含む [[Web]] は [[REST]] [[体系様式]]の1[[実現値]]であると考えられています。
* メモ
[19] [CITE[IRC logs: freenode / #whatwg / 20091013]]
([TIME[2009-12-09 08:43:01 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20091013>
[20] [CITE[Design Issues for HTTP]]
([TIME[1997-06-06 04:48:52 +09:00]] 版)
<http://www.w3.org/Protocols/DesignIssues.html>
[21] [CITE[Hypertext Transfer Protocol Version 1.x]]
([TIME[2000-09-27 19:46:32 +09:00]] 版)
<http://www.w3.org/Protocols/HTTP/>
[22] [CITE@en-US[HTTP - Hypertext Transfer Protocol Overview]]
([TIME[2009-10-26 18:38:01 +09:00]] 版)
<http://www.w3.org/Protocols/>
[23] [CITE[HTTP Problem Statement]]
([TIME[1997-06-06 06:45:05 +09:00]] 版)
<http://www.w3.org/Protocols/HTTP-NG/951005_Problem.html>
[24] ( ([TIME[1993-11-05 09:08:00 +09:00]] 版))
<http://cantor1.mathematik.uni-halle.de/doc/CERN/doc/http-spec.txt>
[25] ( ([TIME[1993-11-12 08:03:00 +09:00]] 版))
<http://cantor1.mathematik.uni-halle.de/doc/CERN/doc/draft-ietf-iiir-http-00.txt>
[26] [CITE[Information on http://cantor1.mathematik.uni-halle.de/doc/CERN/doc/draft-ietf-iiir-http-00.txt]]
( ([TIME[2012-07-10 14:37:20 +09:00]] 版))
<http://suika.fam.cx/gate/2007/schema/schema/536186f16bc0128d84e7690b94f18e92/prop.html>
[27] [CITE@en[Web Applications 1.0 r2499 Always put javascript: into the online whitelist. Make some comments about HTML and HTTPS security. Vaguely define 'or equivalent' for HTTP concepts.]]
( ([TIME[2008-12-02 08:52:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=2498&to=2499>
[28] [CITE[crwlr.net - server header information index | beta]]
( ([TIME[2014-03-05 09:03:07 +09:00]] 版))
<http://crwlr.net/>