/[suikacvs]/webroot/www/2004/id/draft-hallam-http-proxy-note-00.txt
Suika

Contents of /webroot/www/2004/id/draft-hallam-http-proxy-note-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Jun 15 08:37:15 2004 UTC (20 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1 wakaba 1.1
2     INTERNET DRAFT Phillip M. Hallam-Baker, W3C
3     Expires in six months email: <hallam@w3.org>
4     21st February 1996
5    
6    
7     Notification for Proxy Caches
8    
9     <draft-hallam-http-proxy-note-00.txt>
10    
11     Status of this Memo
12    
13     This document is an Internet draft. Internet drafts are working
14     documents of the Internet Engineering Task Force (IETF), its areas
15     and its working groups. Note that other groups may also distribute
16     working information as Internet drafts.
17    
18     Internet Drafts are draft documents valid for a maximum of six
19     months and can be updated, replaced or obsoleted by other documents
20     at any time. It is inappropriate to use Internet drafts as reference
21     material or to cite them as other than as "work in progress".
22    
23     To learn the current status of any Internet draft please check the
24     "lid-abstracts.txt" listing contained in the Internet drafts shadow
25     directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
26     munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or
27     ftp.isi.edu (US West coast). Further information about the IETF can
28     be found at URL: http://www.cnri.reston.va.us/
29    
30     Distribution of this document is unlimited. Please send comments to
31     the HTTP working group (HTTP-WG) of the Internet Engineering Task
32     Force (IETF) at < http://www.ics.uci.edu/pub/ietf/http/. This note
33     is also avaliable as a World Wide Web Consortium Working Draft
34     WD-proxy-960221, archived at
35     http://www.w3.org/pub/WWW/TR/WD-proxy-960221.html
36    
37     Abstract
38    
39     A mechanism to enable better functioning of proxies is proposed.
40     This mechanism allows proxies to inform a remote server about
41     transactions performed using the cache and for servers to inform
42     proxies when data becomes stale.
43    
44     Introduction
45    
46     Proxies [Luotonen94] and in particular caching proxies have become a
47     useful and necessary tool for many Web users. Proxy caches help
48     reduce network load by allowing pages to be served from a local
49     cache..
50    
51     Current proxy behavior is undesirable in a number of ways. There is
52     no mechanism whereby a proxy can be informed of changes to the
53     source data. Such a facility would permit greater use of server side
54     proxies for load balancing purposes.
55    
56     Phillip M. Hallam-Baker Page 1
57    
58    
59    
60     Notification for Proxy Caches
61    
62     Another problem with the current protocol is that a server has no
63     knowledge of hits served from a proxy's cache. This is a significant
64     concern for commercial sites whose revenues depend upon traffic
65     measurements.
66    
67     Implementation
68    
69     These proposals create two new headers, Proxy-Features and
70     Proxy-Instruction. In addition and extra method, NOTIFY and an
71     additional Cache-Control directive are specified.
72    
73     Proxy-Features
74    
75     The proxy features header is used by a proxy sending data to a
76     server. It specifies the features supported by the specified proxy.
77    
78    
79     Proxy-Feature = "Proxy-Features" ":" _proxy-name_ 1*(; proxy-option)
80    
81     proxy-name = dns-name
82     proxy-option = "notify" | "loging" | log
83    
84     log = "log" "=" uri 1*(; log-option)
85     log-option = "expires" "=" 1*digit
86     | "peak" = 1*hexdigit
87    
88    
89    
90     The proxy-name field specifies the proxy offering the features.
91    
92     The notify directive indicates that the proxy can accept
93     notification messages. The log directive indicates that the server
94     is will on request store logs of transactions performed by the proxy
95     on behalf of the particular server. The logging directive indicates
96     that the proxy is already engaged in a logging transaction. The log
97     and logging directives are mutually exclusive.
98    
99     The log option has a required URI parameter. This should be an
100     absolute URI. The expiry an expiry date for the log file in hours.
101     if the log file data is not retrieved before this time the proxy may
102     delete it. The peak option is used to specify a binary mask
103     indicating the peak hours of the server. This mask specified as a
104     six digit hexadecimal number whose bit positions 0 to 23 correspond
105     to the time intervals 0:00 to 0:59 GMT, 1:00 to 1:59 GMT through
106     23:00 to 23:59 GMT respectively. A set bit indicates a period during
107     which server load is high and log file retrieval should be avoided.
108     If specified a peak mask should have at least one clear bit.
109    
110     Proxy-Instruction
111    
112     The proxy instruction header is used to reply to a proxy features
113     header. It should only be present when a Proxy-Features header was
114     present in the corresponding request.
115    
116     Phillip M. Hallam-Baker Page 2
117    
118    
119    
120     Notification for Proxy Caches
121    
122    
123     Proxy-Instruction = "Proxy-Instruction" ":" _proxy-name_
124     1*(; proxy-cmd-option)
125    
126     proxy-name = dns-name
127     proxy-cmd-option = "log" | "summary" | "inform"
128    
129    
130    
131     The proxy-name field specifies the proxy for which the instruction
132     is intended. Proxies may strip out headers which apply to them when
133     passing the message on.
134    
135     Three proxy instructions are defined. These are mutually exclusive.
136     The log instruction instructs the proxy to record log data which
137     will be retreived later. The summary directive indicates that the
138     proxy may opt to provide summary as opposed to full logfiles. The
139     inform directive instructs the proxy to perform an If-Modify-Since
140     operation on each request.
141    
142     Log Exchange Protocol
143    
144     A proxy informs a server that it is willing to inform the server
145     when a resource is served from a cache. The server reply indicates
146     whether the server is willing to accept summary data and if so what
147     type of data is acceptable. If no Proxy-Instruction field is
148     specified the proxy will keep no log data on the servers behalf.
149    
150     The server retrieves its log information periodically using a HTTP
151     GET method. The server may erase the log file information after
152     successfully completion of this operation. Log files are exchanged
153     in the extended log file format [Hallam96]. The data stored in such
154     logs should only contain data corresponding to a single server.
155    
156     Example
157    
158    
159     GET /foo HTTP/1.1
160     Accept: text/html
161     Proxy-Features: proxy.w3.org; log=http://proxy.w3.org/logs/xxxxx.org;
162     expiry=24
163    
164    
165    
166     201 OK
167     Proxy-Instruction: proxy.w3.org; log
168     Content-Type: text/html
169    
170     ...text...
171    
172    
173     The server later retrieves the proxy log information:
174    
175    
176    
177     Phillip M. Hallam-Baker Page 3
178    
179    
180    
181     Notification for Proxy Caches
182    
183     GET /logs HTTP/1.1
184     Accept: application/www-extended-log
185    
186    
187    
188     201 O.K.
189     Content-Type: application/www-extended-log
190    
191     #Version: 1.0
192     #Start-Date: 1996-02-21 12:00
193     #End-Date: 1996-02-21 16:45.34
194     #Fields Time URI
195     12:02 /foo
196     12:03 /foo/bar
197     ...
198    
199    
200     Notification Protocol
201    
202     A proxy signals that it can accept the notification protocol using
203     the notify proxy option. The server may undertake to provide
204     notification in reply using a new notify parameter of the
205     Cache-Control header. Notification takes place using the Notify
206     method. This takes as its parameter the full URI of the resource
207     which has expired.
208    
209     Example
210    
211     The proxy proxy.w3.org sends the remote server the following
212     request:
213    
214    
215     GET /foo HTTP/1.1
216     Accept: text/html
217     Proxy-Features: proxy.w3.org; notify
218    
219    
220     The server indicates that it is willing to provide notification:
221    
222    
223     201 OK
224     Cache-Control: notify
225     Content-Type: text/html
226    
227     ...text...
228    
229    
230     The server subsequently notifies the proxy that the page has
231     expired:
232    
233    
234     NOTIFY /foo HTTP/1.1
235    
236    
237     Phillip M. Hallam-Baker Page 4
238    
239    
240    
241     Notification for Proxy Caches
242    
243     A server must not generate a cache control notify directive unless
244     notification was offered as a proxy feature.
245    
246     Note: servers which are capable of supporting the notification
247     protocol are not obliged to provide notification for every request.
248     Such a requirement could lead to servers becoming overloaded. It is
249     expected that use of this protocol will be restricted to a limited
250     number of high load servers and proxies. Clients should not in
251     attempt to use this facility as a matter of course.
252    
253     Query: an alternative approach would be to piggyback notifications
254     on the back of other requests using a header tag. alternatively the
255     notification could also cause the updated page to be pushed at the
256     client. This might require a separate update directive.
257    
258     Multiple Proxy Configurations
259    
260     The protocols described are believed to operate correctly in
261     configurations involving multiple proxies. Additional work is
262     required before it is certain that this is the case.
263    
264     Security considerations
265    
266     The logging feature is vulnerable to an IP spoofing attack. An
267     attacker might use this feature to obtain logfiles. A lightweight
268     authentication technique might significantly increase the difficulty
269     of such an attack.
270    
271     Further Work
272    
273     The proposals made here are intended to describe structure rather
274     than implementation. It may be desirable to combine these proposals
275     with other extensions relevant to proxies. Header names should
276     therefore be considered advisory only. In particular it is likely
277     that the standards process will wish to consider PEP [khare96] as a
278     basis for implementation.
279    
280     A proxy might perform an auditing service by authenticating the log
281     files with a digital signature or other means.
282    
283    
284     Phillip M. Hallam-Baker
285     hallam@w3.org
286     World Wid Web Consortium
287     Cambridge MA
288    
289    
290     References
291    
292     [Khare96]
293     R. Khare, _ PEP: An Extension Mechanism for HTTP _
294     http://www.w3.org/pub/WWW/TR/WD-http-pep
295    
296    
297     Phillip M. Hallam-Baker Page 5
298    
299    
300    
301     Notification for Proxy Caches
302    
303     [Luotonen94]
304     A. Luotonen, _World wide Web Proxies_, Proceedings of First
305     International World-Wide Web Conference. Geneva 1994.
306    
307     [HTTP-1.0]
308     R. Fielding, H. Frystyk, T. Berners-Lee, _ Hypertext Transfer
309     Protocol -- HTTP/1.0_
310     http://www.w3.org/pub/WWW/Protocols/HTTP/1.0/spec.html
311    
312     [HTTP-1.1]
313     R. Fielding, H. Frystyk, T. Berners-Lee, _ Hypertext Transfer
314     Protocol -- HTTP/1.1_
315     http://www.w3.org/pub/WWW/Protocols/HTTP/1.1/spec.html
316    
317     [Hallam96]
318     P. M. Hallam-Baker _ Extended Log File Format _
319     http://www.w3.org/pub/WWW/TR/WD-logfile.html
320    
321    
322    
323    
324    
325    
326    
327    
328    
329    
330    
331    
332    
333    
334    
335    
336    
337    
338    
339    
340    
341    
342    
343    
344    
345    
346    
347    
348    
349    
350    
351    
352    
353    
354    
355    
356    
357     Phillip M. Hallam-Baker Page 6
358    

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24