1 |
wakaba |
1.1 |
|
2 |
|
|
|
3 |
|
|
HTTP Working Group L. Harada, AOL, |
4 |
|
|
Internet-Draft H. Hendren, AOL, |
5 |
|
|
Expires: 28 March 1998 P. Leach, Microsoft, |
6 |
|
|
J. Mogul, DECWRL |
7 |
|
|
12 September 1997 |
8 |
|
|
HTTP X-Connfrom header |
9 |
|
|
|
10 |
|
|
draft-harada-http-xconnfrom-01.txt |
11 |
|
|
|
12 |
|
|
|
13 |
|
|
STATUS OF THIS MEMO |
14 |
|
|
|
15 |
|
|
This document is an Internet-Draft. Internet-Drafts are |
16 |
|
|
working documents of the Internet Engineering Task Force |
17 |
|
|
(IETF), its areas, and its working groups. Note that other |
18 |
|
|
groups may also distribute working documents as |
19 |
|
|
Internet-Drafts. |
20 |
|
|
|
21 |
|
|
Internet-Drafts are draft documents valid for a maximum of |
22 |
|
|
six months and may be updated, replaced, or obsoleted by |
23 |
|
|
other documents at any time. It is inappropriate to use |
24 |
|
|
Internet-Drafts as reference material or to cite them other |
25 |
|
|
than as "work in progress." |
26 |
|
|
|
27 |
|
|
To learn the current status of any Internet-Draft, please |
28 |
|
|
check the "1id-abstracts.txt" listing contained in the |
29 |
|
|
Internet-Drafts Shadow Directories on ftp.is.co.za |
30 |
|
|
(Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific |
31 |
|
|
Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US |
32 |
|
|
West Coast). |
33 |
|
|
|
34 |
|
|
Distribution of this document is unlimited. Please send |
35 |
|
|
comments to the HTTP working group at |
36 |
|
|
<http-wg@cuckoo.hpl.hp.com>. Discussions of the working |
37 |
|
|
group are archived at |
38 |
|
|
<URL:http://www.ics.uci.edu/pub/ietf/http/>. General |
39 |
|
|
discussions about HTTP and the applications which use HTTP |
40 |
|
|
should take place on the <www-talk@w3.org> mailing list. |
41 |
|
|
|
42 |
|
|
|
43 |
|
|
ABSTRACT |
44 |
|
|
|
45 |
|
|
HTTP/1.1 defines a Connection header, allowing 'the sender |
46 |
|
|
to specify options that are desired for that particular |
47 |
|
|
connection and MUST NOT be communicated by proxies over |
48 |
|
|
further connections.' Because HTTP/1.0 proxies would |
49 |
|
|
normally forward the Connection header without obeying its |
50 |
|
|
specification, a Connection header received in an HTTP/1.0 |
51 |
|
|
message must normally be treated as if it had been |
52 |
|
|
forwarded in error. This document defines an X-Connfrom |
53 |
|
|
header that identifies the sending host, and so is safe to |
54 |
|
|
use in HTTP/1.0 messages. This might be useful in |
55 |
|
|
experimenting with HTTP/1.0 implementations of applications |
56 |
|
|
of the HTTP/1.1 Connection mechanism. |
57 |
|
|
|
58 |
|
|
Harada, Hendren, Leach, Mogul [Page 1] |
59 |
|
|
|
60 |
|
|
Internet-Draft HTTP X-Connfrom header 12 September 1997 17:30 |
61 |
|
|
|
62 |
|
|
|
63 |
|
|
TABLE OF CONTENTS |
64 |
|
|
|
65 |
|
|
1 Introduction 2 |
66 |
|
|
2 Specification 3 |
67 |
|
|
3 Security Considerations 4 |
68 |
|
|
4 Acknowledgments 4 |
69 |
|
|
5 References 4 |
70 |
|
|
6 Authors' addresses 4 |
71 |
|
|
|
72 |
|
|
|
73 |
|
|
1 Introduction |
74 |
|
|
|
75 |
|
|
Some HTTP message headers and options cannot be safely forwarded by a |
76 |
|
|
naive proxy, but must be treated as hop-by-hop information. Examples |
77 |
|
|
include the HTTP/1.1 ``close'' token, used to indicate that the |
78 |
|
|
sender does not want a connection to be persistent [1], and the |
79 |
|
|
``Meter'' header, used in the Hit-metering mechanism [2]. |
80 |
|
|
|
81 |
|
|
HTTP/1.1 includes a Connection general-header, which "allows the |
82 |
|
|
sender to specify options that are desired for that particular |
83 |
|
|
connection and MUST NOT be communicated by proxies over further |
84 |
|
|
connections." According to section 14.10 of RFC2068, |
85 |
|
|
|
86 |
|
|
HTTP/1.1 proxies MUST parse the Connection header field |
87 |
|
|
before a message is forwarded and, for each connection-token |
88 |
|
|
in this field, remove any header field(s) from the message |
89 |
|
|
with the same name as the connection-token. |
90 |
|
|
|
91 |
|
|
The Connection header cannot be sent in HTTP/1.0 messages (i.e., in |
92 |
|
|
messages with a Request-Line or Status-Line including an HTTP-version |
93 |
|
|
of "HTTP/1.0"), and hence cannot be sent by HTTP/1.0 implementations. |
94 |
|
|
More precisely, if an HTTP/1.1 (or later) implementation receives an |
95 |
|
|
HTTP/1.0 message with a Connection header, the recipient is forced to |
96 |
|
|
assume that the Connection header might have been forwarded |
97 |
|
|
improperly, by a naive HTTP/1.0 proxy, and hence the recipient must |
98 |
|
|
behave as if any listed header-fields should have been removed from |
99 |
|
|
the message by a prior recipient. |
100 |
|
|
|
101 |
|
|
This prevents an HTTP/1.0 implementation from participating in, for |
102 |
|
|
example, the Hit-metering mechanism [2], since this mechanism |
103 |
|
|
requires that the Meter header be sent hop-by-hop, using the |
104 |
|
|
Connection header. |
105 |
|
|
|
106 |
|
|
We observe that a Connection-like header that identifies its sender |
107 |
|
|
could be safely sent in an HTTP message, since the recipient could |
108 |
|
|
verify that it had not been improperly forwarded. This verification |
109 |
|
|
is done by obtaining (from a lower protocol layer) the network-level |
110 |
|
|
address of the current connection, and then comparing that address |
111 |
|
|
against the identification in the Connection-like header. |
112 |
|
|
|
113 |
|
|
|
114 |
|
|
|
115 |
|
|
Harada, Hendren, Leach, Mogul [Page 2] |
116 |
|
|
|
117 |
|
|
Internet-Draft HTTP X-Connfrom header 12 September 1997 17:30 |
118 |
|
|
|
119 |
|
|
|
120 |
|
|
We propose the use of an X-Connfrom header, similar to the Connection |
121 |
|
|
header except in its use of an explicit sender identification. The |
122 |
|
|
implementation of this header is entirely optional for both sender |
123 |
|
|
and recipient, and would not be required for compliance with any |
124 |
|
|
version of the HTTP protocol. |
125 |
|
|
|
126 |
|
|
|
127 |
|
|
2 Specification |
128 |
|
|
|
129 |
|
|
The words MUST, SHOULD, and MAY in this specification apply only to |
130 |
|
|
implementations that choose to support the X-Connfrom header field; |
131 |
|
|
they do not apply to other implementations of any version of the HTTP |
132 |
|
|
protocol. |
133 |
|
|
|
134 |
|
|
The X-Connfrom general-header field allows the sender to specify |
135 |
|
|
options that are desired for that particular connection and must not |
136 |
|
|
be communicated by proxies over further connections. |
137 |
|
|
|
138 |
|
|
The Connection header has the following grammar: |
139 |
|
|
|
140 |
|
|
X-Connfrom-header = "X-Connfrom" ":" |
141 |
|
|
1#( x-conn-hostid | connection-token) |
142 |
|
|
|
143 |
|
|
x-conn-hostid = "@" host [":" port] |
144 |
|
|
|
145 |
|
|
where host, port, and connection-token are defined as in RFC2068 [1]. |
146 |
|
|
|
147 |
|
|
The port value MUST be included if the value is defined for the |
148 |
|
|
transport protocol in use; in particular, it MUST be given when the |
149 |
|
|
TCP protocol is being used. |
150 |
|
|
|
151 |
|
|
An X-Connfrom header field MUST include exactly one x-conn-hostid |
152 |
|
|
value. The x-conn-hostid value SHOULD appear before any |
153 |
|
|
connection-token value. |
154 |
|
|
|
155 |
|
|
The recipient of an X-Connfrom header field SHOULD obtain the |
156 |
|
|
network-level address (and port, if available) of the sender of the |
157 |
|
|
message, and compare it to the x-conn-hostid value. If the values |
158 |
|
|
match, then the recipient SHOULD process the remaining |
159 |
|
|
connection-token value(s) as defined for the Connection header in the |
160 |
|
|
HTTP/1.1 specification. If the values do not match, then the |
161 |
|
|
recipient SHOULD act as if any header field(s) listed in the |
162 |
|
|
field-value were improperly forwarded by a prior recipient. |
163 |
|
|
|
164 |
|
|
The X-Connfrom header field SHOULD NOT be forwarded. |
165 |
|
|
|
166 |
|
|
Implementations of HTTP/1.1 (and higher HTTP-versions) SHOULD NOT |
167 |
|
|
send messages with X-Connfrom header fields (since the normal |
168 |
|
|
Connection header is available for their use). Any implementation |
169 |
|
|
MAY process this field in received messages. |
170 |
|
|
|
171 |
|
|
|
172 |
|
|
Harada, Hendren, Leach, Mogul [Page 3] |
173 |
|
|
|
174 |
|
|
Internet-Draft HTTP X-Connfrom header 12 September 1997 17:30 |
175 |
|
|
|
176 |
|
|
|
177 |
|
|
Examples: |
178 |
|
|
|
179 |
|
|
X-Connfrom: @proxy.foo.net:9273, meter |
180 |
|
|
X-Connfrom: @proxy.foo.net:7321, meter, close |
181 |
|
|
|
182 |
|
|
|
183 |
|
|
3 Security Considerations |
184 |
|
|
|
185 |
|
|
This design should have identical security properties as the existing |
186 |
|
|
Connection header in the HTTP/1.1 protocol, except that it might |
187 |
|
|
occasionally expose to a server the name or address of a ``hidden'' |
188 |
|
|
proxy, in contexts where this would not normally happen. Proxies |
189 |
|
|
whose name or address must be kept secret probably should not send |
190 |
|
|
the X-Connect header. |
191 |
|
|
|
192 |
|
|
|
193 |
|
|
4 Acknowledgments |
194 |
|
|
|
195 |
|
|
We would like to thank Roy Fielding, for apparently being the first |
196 |
|
|
to suggest (in 1996) the inclusion of a host name in the design of |
197 |
|
|
HTTP's persistent connection mechanism (for the same basic reasons). |
198 |
|
|
|
199 |
|
|
|
200 |
|
|
5 References |
201 |
|
|
|
202 |
|
|
1. Roy T. Fielding, Jim Gettys, Jeffrey C. Mogul, Henrik Frystyk |
203 |
|
|
Nielsen, and Tim Berners-Lee. Hypertext Transfer Protocol -- |
204 |
|
|
HTTP/1.1. RFC 2068, HTTP Working Group, January, 1997. |
205 |
|
|
|
206 |
|
|
2. J. Mogul and P. Leach. Simple Hit-Metering and Usage-Limiting |
207 |
|
|
for HTTP. Internet Draft draft-ietf-http-hit-metering-03.txt, HTTP |
208 |
|
|
Working Group, July, 1997. This is a work in progress. |
209 |
|
|
|
210 |
|
|
|
211 |
|
|
6 Authors' addresses |
212 |
|
|
|
213 |
|
|
Larry Harada |
214 |
|
|
America Online |
215 |
|
|
690 Fifth Street |
216 |
|
|
San Francisco, CA 94107, U.S.A. |
217 |
|
|
Email: Larry@aol.net |
218 |
|
|
|
219 |
|
|
Hudson Hendren |
220 |
|
|
America Online |
221 |
|
|
8619 Westwood Center Drive |
222 |
|
|
Vienna, VA 22182, U.S.A |
223 |
|
|
E-mail: hudson@aol.net |
224 |
|
|
|
225 |
|
|
Paul J. Leach |
226 |
|
|
Microsoft |
227 |
|
|
1 Microsoft Way |
228 |
|
|
|
229 |
|
|
Harada, Hendren, Leach, Mogul [Page 4] |
230 |
|
|
|
231 |
|
|
Internet-Draft HTTP X-Connfrom header 12 September 1997 17:30 |
232 |
|
|
|
233 |
|
|
|
234 |
|
|
Redmond, Washington, 98052, U.S.A. |
235 |
|
|
Email: paulle@microsoft.com |
236 |
|
|
|
237 |
|
|
Jeffrey C. Mogul |
238 |
|
|
Western Research Laboratory |
239 |
|
|
Digital Equipment Corporation |
240 |
|
|
250 University Avenue |
241 |
|
|
Palo Alto, California, 94305, USA |
242 |
|
|
Email: mogul@wrl.dec.com |
243 |
|
|
|
244 |
|
|
|
245 |
|
|
|
246 |
|
|
|
247 |
|
|
|
248 |
|
|
|
249 |
|
|
|
250 |
|
|
|
251 |
|
|
|
252 |
|
|
|
253 |
|
|
|
254 |
|
|
|
255 |
|
|
|
256 |
|
|
|
257 |
|
|
|
258 |
|
|
|
259 |
|
|
|
260 |
|
|
|
261 |
|
|
|
262 |
|
|
|
263 |
|
|
|
264 |
|
|
|
265 |
|
|
|
266 |
|
|
|
267 |
|
|
|
268 |
|
|
|
269 |
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
|
273 |
|
|
|
274 |
|
|
|
275 |
|
|
|
276 |
|
|
|
277 |
|
|
|
278 |
|
|
|
279 |
|
|
|
280 |
|
|
|
281 |
|
|
|
282 |
|
|
|
283 |
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
Harada, Hendren, Leach, Mogul [Page 5] |