1 |
wakaba |
1.1 |
|
2 |
|
|
HTTP Working Group Koen Holtman, TUE |
3 |
|
|
Internet-Draft Andrew Mutz, Hewlett-Packard |
4 |
|
|
Expires: January 28, 1998 July 28, 1997 |
5 |
|
|
|
6 |
|
|
Feature Tag Scenarios |
7 |
|
|
|
8 |
|
|
draft-ietf-http-feature-scenarios-01.txt |
9 |
|
|
|
10 |
|
|
|
11 |
|
|
STATUS OF THIS MEMO |
12 |
|
|
|
13 |
|
|
This document is an Internet-Draft. Internet-Drafts are |
14 |
|
|
working documents of the Internet Engineering Task Force |
15 |
|
|
(IETF), its areas, and its working groups. Note that other |
16 |
|
|
groups may also distribute working documents as |
17 |
|
|
Internet-Drafts. |
18 |
|
|
|
19 |
|
|
Internet-Drafts are draft documents valid for a maximum of |
20 |
|
|
six months and may be updated, replaced, or obsoleted by |
21 |
|
|
other documents at any time. It is inappropriate to use |
22 |
|
|
Internet-Drafts as reference material or to cite them other |
23 |
|
|
than as "work in progress". |
24 |
|
|
|
25 |
|
|
To learn the current status of any Internet-Draft, please |
26 |
|
|
check the "1id-abstracts.txt" listing contained in the |
27 |
|
|
Internet-Drafts Shadow Directories on ftp.is.co.za |
28 |
|
|
(Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific |
29 |
|
|
Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US |
30 |
|
|
West Coast). |
31 |
|
|
|
32 |
|
|
Distribution of this document is unlimited. Please send |
33 |
|
|
comments to the HTTP working group at |
34 |
|
|
<http-wg@cuckoo.hpl.hp.com>. Discussions of the working |
35 |
|
|
group are archived at |
36 |
|
|
<URL:http://www.ics.uci.edu/pub/ietf/http/>. General |
37 |
|
|
discussions about HTTP and the applications which use HTTP |
38 |
|
|
should take place on the <www-talk@w3.org> mailing list. |
39 |
|
|
|
40 |
|
|
A HTML version of this document can be found at |
41 |
|
|
<URL:http://gewis.win.tue.nl/~koen/conneg/>. |
42 |
|
|
|
43 |
|
|
ABSTRACT |
44 |
|
|
|
45 |
|
|
Recent Internet applications, such as the World Wide Web, tie |
46 |
|
|
together a great diversity in data formats, client and server |
47 |
|
|
platforms, and communities. This has created a need for various |
48 |
|
|
kinds of negotiation mechanisms, which tailor the data which is |
49 |
|
|
exchanged, or the exchange process itself, to the capabilities and |
50 |
|
|
preferences of the parties involved. |
51 |
|
|
|
52 |
|
|
Extensible negotiation mechanisms need a vocabulary to identify |
53 |
|
|
various things which can be negotiated on. To promote |
54 |
|
|
interoperability, a registration process is needed to ensure that |
55 |
|
|
that this vocabulary, which can be shared between negotiation |
56 |
|
|
mechanisms, is developed in an orderly, well-specified, and public |
57 |
|
|
manner. |
58 |
|
|
|
59 |
|
|
This document discusses requirements and scenarios the registration |
60 |
|
|
of this vocabulary, which is the vocabulary of feature tags. |
61 |
|
|
Feature tag registration is foreseen as an ongoing, open process |
62 |
|
|
which will keep pace with the introduction of new features by |
63 |
|
|
software vendors, and other parties such as standards bodies. |
64 |
|
|
|
65 |
|
|
|
66 |
|
|
TABLE OF CONTENTS |
67 |
|
|
|
68 |
|
|
1 Introduction |
69 |
|
|
|
70 |
|
|
2 Basic concepts and definitions |
71 |
|
|
2.1 Areas of negotiation and feature tags |
72 |
|
|
2.2 Complexity of negotiation |
73 |
|
|
2.3 The result in an area of negotiation |
74 |
|
|
|
75 |
|
|
3 Extensible negotiation mechanisms |
76 |
|
|
3.1 The need for extensible negotiation mechanisms: the case of the Web |
77 |
|
|
3.2 Extensible negotiation mechanisms for the Web |
78 |
|
|
3.3 Extensible negotiation mechanisms for other Internet protocols |
79 |
|
|
|
80 |
|
|
4 Feature tag registration |
81 |
|
|
4.1 IANA registration procedures |
82 |
|
|
4.2 Examples of parties who would want to register feature tags |
83 |
|
|
4.3 Feature tag registration scenario |
84 |
|
|
4.4 Volume considerations |
85 |
|
|
4.5 Danger of excessive registration |
86 |
|
|
|
87 |
|
|
5 Security considerations |
88 |
|
|
|
89 |
|
|
6 Acknowledgments |
90 |
|
|
|
91 |
|
|
7 References |
92 |
|
|
|
93 |
|
|
8 Authors' addresses |
94 |
|
|
|
95 |
|
|
|
96 |
|
|
1 Introduction |
97 |
|
|
|
98 |
|
|
Recent Internet applications, such as the World Wide Web, tie |
99 |
|
|
together a great diversity in data formats, client and server |
100 |
|
|
platforms, and communities. This has created a need for various |
101 |
|
|
kinds of negotiation mechanisms, which tailor the data which is |
102 |
|
|
exchanged, or the exchange process itself, to the capabilities and |
103 |
|
|
preferences of the parties involved. |
104 |
|
|
|
105 |
|
|
Extensible negotiation mechanisms need a vocabulary to identify |
106 |
|
|
various things which can be negotiated on. To promote |
107 |
|
|
interoperability, a registration process is needed to ensure that |
108 |
|
|
that this vocabulary, which can be shared between negotiation |
109 |
|
|
mechanisms, is developed in an orderly, well-specified, and public |
110 |
|
|
manner. |
111 |
|
|
|
112 |
|
|
This document discusses requirements and scenarios the registration |
113 |
|
|
of this vocabulary, which is the vocabulary of feature tags. |
114 |
|
|
Feature tag registration is foreseen as an ongoing, open process |
115 |
|
|
which will keep pace with the introduction of new features by |
116 |
|
|
software vendors, and other parties such as standards bodies. |
117 |
|
|
|
118 |
|
|
|
119 |
|
|
2 Basic concepts and definitions |
120 |
|
|
|
121 |
|
|
2.1 Areas of negotiation and feature tags |
122 |
|
|
|
123 |
|
|
Something which can be negotiated on is called an `area of |
124 |
|
|
negotiation' in this document. Examples of areas of negotiation |
125 |
|
|
are: |
126 |
|
|
|
127 |
|
|
* the MIME media type of the data which is transmitted |
128 |
|
|
* the language of the text document which is transmitted |
129 |
|
|
* the color depth of the screen on which something is to be |
130 |
|
|
displayed |
131 |
|
|
* whether the recipient supports the `floating 5 dimensional |
132 |
|
|
tables' feature |
133 |
|
|
* the fonts which are available to the recipient |
134 |
|
|
* whether a Web user prefers speed over graphical detail |
135 |
|
|
* whether the recipient is capable of displaying graphical |
136 |
|
|
content |
137 |
|
|
* whether the user prefers a blue background with purple dots over |
138 |
|
|
a green background with pictures of small furry animals, except |
139 |
|
|
on Fridays. |
140 |
|
|
|
141 |
|
|
A feature tag identifies a single area of negotiation. |
142 |
|
|
|
143 |
|
|
It is expected that the majority of feature tags will identify new |
144 |
|
|
areas of negotiation, in which the object of negotiation is to |
145 |
|
|
decide on the presence or use of some new feature in a software |
146 |
|
|
product. This explains the name `feature tag'. |
147 |
|
|
|
148 |
|
|
It is recognized that there is continuous growth in the number of |
149 |
|
|
areas in which some form of negotiation is desirable. To keep up |
150 |
|
|
with this growth, extensible negotiation mechanisms are needed, |
151 |
|
|
which refer to the feature tag vocabulary to identify new areas of |
152 |
|
|
negotiation, rather than relying on hard-coded knowledge about a |
153 |
|
|
few areas. |
154 |
|
|
|
155 |
|
|
To avoid the duplication of work, and to promote the interoperable |
156 |
|
|
naming of areas of negotiation across protocols and applications, |
157 |
|
|
the feature tag namespace should not be bound to a particular |
158 |
|
|
protocol or negotiation mechanism. Also, there should be no prior |
159 |
|
|
restriction on the areas of negotiation which may be identified by |
160 |
|
|
a feature tag, other than that it must be conceivable to negotiate |
161 |
|
|
in these areas in the context of some Internet application. |
162 |
|
|
|
163 |
|
|
|
164 |
|
|
2.2 Complexity of negotiation |
165 |
|
|
|
166 |
|
|
Negotiation processes can often be complex. Two frequent sources |
167 |
|
|
of complexity are: |
168 |
|
|
|
169 |
|
|
1. An area of negotiation may be inherently complex. For |
170 |
|
|
example, negotiating on the use of a particular media type is |
171 |
|
|
inherently more complex than negotiating on the presence of a |
172 |
|
|
single feature, because there are more possible outcomes. |
173 |
|
|
|
174 |
|
|
2. There may be complex of interdependencies between the choices |
175 |
|
|
in different areas of negotiation. For example, if the |
176 |
|
|
following versions of a document are available on a Web server: |
177 |
|
|
|
178 |
|
|
* text/html, English |
179 |
|
|
* text/plain, French |
180 |
|
|
* audio/x-wav, German |
181 |
|
|
|
182 |
|
|
then the content negotiation mechanism cannot treat the areas |
183 |
|
|
of `MIME media type negotiation' and `language negotiation' as |
184 |
|
|
separate. |
185 |
|
|
|
186 |
|
|
It is recognized that extensible negotiation mechanisms will often |
187 |
|
|
differ in the type and amount of complexity they can handle. Thus, |
188 |
|
|
though negotiation mechanisms share the feature tag namespace, it |
189 |
|
|
will not be the case that every tag is usable in every negotiation |
190 |
|
|
mechanism, or that every negotiation mechanism will be able to |
191 |
|
|
handle all possible interdependencies. |
192 |
|
|
|
193 |
|
|
|
194 |
|
|
2.3 The result in an area of negotiation |
195 |
|
|
|
196 |
|
|
During negotiation, negotiation mechanisms will often need to |
197 |
|
|
transmit (canonical representations of) the possible results in |
198 |
|
|
various areas of negotiation over the wire. Also, at the end of a |
199 |
|
|
negotiation process, the mechanism may need to return (a |
200 |
|
|
canonical representation of) the result to the application which |
201 |
|
|
invoked it. |
202 |
|
|
|
203 |
|
|
In many areas of negotiation, there will be a natural, canonical |
204 |
|
|
representation of the result. For example, in the area |
205 |
|
|
|
206 |
|
|
* whether the recipient supports the `floating 5 dimensional |
207 |
|
|
tables' feature |
208 |
|
|
|
209 |
|
|
the canonical representation of the result is a boolean value (yes, |
210 |
|
|
the feature is supported, or no, the feature is not supported). In |
211 |
|
|
the area |
212 |
|
|
|
213 |
|
|
* the MIME media type of the data which is transmitted |
214 |
|
|
|
215 |
|
|
the canonical representation of the result will be a MIME media |
216 |
|
|
type identifier like text/html or application/postscript. In some |
217 |
|
|
areas of negotiation, the result could be a compound value (e.g. a |
218 |
|
|
coordinate in a 3D space). |
219 |
|
|
|
220 |
|
|
To promote interoperability, the registration entry of a feature |
221 |
|
|
tag can include a definition of the canonical representations of |
222 |
|
|
the possible results in the corresponding area of negotiation. |
223 |
|
|
|
224 |
|
|
|
225 |
|
|
3 Extensible negotiation mechanisms |
226 |
|
|
|
227 |
|
|
We call a negotiation mechanism extensible if the set of areas |
228 |
|
|
on which the mechanism can negotiate is extensible, instead of |
229 |
|
|
hard-coded inside the mechanism. |
230 |
|
|
|
231 |
|
|
3.1 The need for extensible negotiation mechanisms: the case of the Web |
232 |
|
|
|
233 |
|
|
HTTP [2] has traditionally recognized four areas of negotiation: |
234 |
|
|
|
235 |
|
|
1. MIME media type |
236 |
|
|
2. Charset |
237 |
|
|
3. Language |
238 |
|
|
4. Encoding |
239 |
|
|
|
240 |
|
|
HTTP provides support for these areas of negotiation by defining |
241 |
|
|
identifiers (Accept headers) for these areas, and defining |
242 |
|
|
canonical representations of the possible results in these areas. |
243 |
|
|
|
244 |
|
|
Experience with the Web has shown there is a great need to |
245 |
|
|
negotiate on things which do not fit the four areas above. This |
246 |
|
|
need has shown itself in a number of ways: |
247 |
|
|
|
248 |
|
|
- Web servers routinely use (abuse) other headers than the Accept |
249 |
|
|
headers for negotiation purposes. In particular, the HTTP |
250 |
|
|
User-Agent header has been widely used by web sites to detect |
251 |
|
|
the presence of certain features in browsers, and by browsers |
252 |
|
|
to trigger certain features in web sites, even though such use |
253 |
|
|
is error-prone, and conflicts with the original purpose of the |
254 |
|
|
User-Agent header. |
255 |
|
|
|
256 |
|
|
- Web servers routinely use `dynamic URLs' and cookies to encode |
257 |
|
|
negotiation related information like user preferences. This |
258 |
|
|
can be cache-unfriendly, in particular in the case of `dynamic |
259 |
|
|
URLs'. |
260 |
|
|
|
261 |
|
|
- During the standardization of HTTP, several proposals for |
262 |
|
|
additional Accept headers, matching additional areas of |
263 |
|
|
negotiation, were made. These proposals have been rejected in |
264 |
|
|
favor of developing an extensible negotiation mechanism. |
265 |
|
|
|
266 |
|
|
- There has been pressure to extend the MIME media type parameter |
267 |
|
|
mechanism to allow for the naming of, and negotiation on, new |
268 |
|
|
features in media types already registered, something which is |
269 |
|
|
explicitly disallowed in the MIME type registration rules. It |
270 |
|
|
was recognized that this pressure would be better addressed by |
271 |
|
|
creating a new namespace independent from the MIME media type |
272 |
|
|
space. |
273 |
|
|
|
274 |
|
|
|
275 |
|
|
3.2 Extensible negotiation mechanisms for the Web |
276 |
|
|
|
277 |
|
|
In the IETF HTTP working group, it has been recognized that the |
278 |
|
|
number of areas for Web content negotiation is growing so rapidly |
279 |
|
|
that the IETF would never be able to keep up with this growth by by |
280 |
|
|
continually revising a negotiation mechanism with a hard-coded set |
281 |
|
|
of areas. Instead, a number of extensible content negotiation |
282 |
|
|
mechanisms have been proposed. All of these mechanisms share the |
283 |
|
|
need for an external vocabulary to identify areas, a vocabulary |
284 |
|
|
which can be updated quickly enough to keep pace with the |
285 |
|
|
introduction of new features by Web software vendors. |
286 |
|
|
|
287 |
|
|
The proposed extensible content negotiation mechanisms are |
288 |
|
|
transparent content negotiation [2], and negotiation mechanisms |
289 |
|
|
based on various forms of "active content". In "active content" |
290 |
|
|
negotiation, the web server returns an executable program which is |
291 |
|
|
run by the browser. This program then accesses a database of |
292 |
|
|
negotiation related settings inside the browser, and chooses and |
293 |
|
|
renders the most appropriate content. Note that there are several |
294 |
|
|
existing and proposed forms of active content. |
295 |
|
|
|
296 |
|
|
To tie everything together, a browser architecture with a common |
297 |
|
|
internal database for negotiation related information has been |
298 |
|
|
proposed. The database would be filled to reflect the capabilities |
299 |
|
|
of all browser components, both native components and plugins, and |
300 |
|
|
the preference settings made by the user. Feature tags would serve |
301 |
|
|
as the keys under which the database entries for different areas of |
302 |
|
|
negotiation are stored. Individual negotiation mechanisms could |
303 |
|
|
access the central database through some API. The architecture is |
304 |
|
|
shown in the following picture. |
305 |
|
|
|
306 |
|
|
+-----------------------------------------------------------------+ |
307 |
|
|
| BROWSER | |
308 |
|
|
| | |
309 |
|
|
| +------------------+ +----------+ +----------+ +-----------+ | |
310 |
|
|
| | Native browser | | Plugin 1 | | Plugin 2 | |User | | |
311 |
|
|
| | rendering engine | +----------+ +----------+ |preferences| | |
312 |
|
|
| +------------------+ | | +-----------+ | |
313 |
|
|
| | | | | | |
314 |
|
|
| V V V V | |
315 |
|
|
| +------------------------------------------------------+ | |
316 |
|
|
| | Common internal database for negotiation information | | |
317 |
|
|
| +------------------------------------------------------+ | |
318 |
|
|
| | | | | | |
319 |
|
|
| API API API API | |
320 |
|
|
| | | | | | |
321 |
|
|
| V V V V | |
322 |
|
|
| +---------+ +---------+ +-------------+ | |
323 |
|
|
| | Java | | JScript | | transparent | | |
324 |
|
|
| | based | | based | ..etc | content | | |
325 |
|
|
| | active | | active | | negotiation | | |
326 |
|
|
| | content | | content | | engine | | |
327 |
|
|
| +---------+ +---------+ +-------------+ | |
328 |
|
|
| | |
329 |
|
|
+-----------------------------------------------------------------+ |
330 |
|
|
|
331 |
|
|
|
332 |
|
|
3.3 Extensible negotiation mechanisms for other Internet protocols |
333 |
|
|
|
334 |
|
|
Extensible negotiation mechanisms for Internet printing and |
335 |
|
|
Internet fax are currently under investigation in the IETF. |
336 |
|
|
|
337 |
|
|
It has been proposed to make multipart/alternative negotiation in |
338 |
|
|
Internet mail more extensible, in particular if the mail client is |
339 |
|
|
part of a Web browser, by adapting some of the protocol elements |
340 |
|
|
developed for transparent content negotiation [2] to Internet mail. |
341 |
|
|
|
342 |
|
|
4 Feature tag registration |
343 |
|
|
|
344 |
|
|
4.1 IANA registration procedures |
345 |
|
|
|
346 |
|
|
Examples of IANA registration procedures can be found in [1]. |
347 |
|
|
|
348 |
|
|
There has been some confusion over what the IANA will register. |
349 |
|
|
Jon Postel told us that: |
350 |
|
|
|
351 |
|
|
The IANA is pretty good at keeping lists. It is not so good at |
352 |
|
|
evaluating the merits (or lack thereof) of the requests to add |
353 |
|
|
things to lists. [...] So, yes the IANA would keep the list of |
354 |
|
|
"feature tags" provided that that there is either a very simple |
355 |
|
|
way to decide if requests pass muster, or a designated someone |
356 |
|
|
else will be available to make that decision. |
357 |
|
|
|
358 |
|
|
So two types of registration namespaces can be created: |
359 |
|
|
|
360 |
|
|
a) a space with feature tag review process performed by the IETF |
361 |
|
|
|
362 |
|
|
b) a space with very basic registration rules which do not take |
363 |
|
|
the merit of the feature tag into account. To quote [1], |
364 |
|
|
this type of registration "does not imply endorsement, |
365 |
|
|
approval, or recommendation by the IANA or IETF or even |
366 |
|
|
certification that the specification is adequate." |
367 |
|
|
|
368 |
|
|
If extensible negotiation mechanisms are to keep up with the speed |
369 |
|
|
of development in the Web, a type b) registration process for |
370 |
|
|
feature tags seems necessary, if only because the IETF does not |
371 |
|
|
have the manpower required for a review process which can keep up |
372 |
|
|
with the speed of Web development. |
373 |
|
|
|
374 |
|
|
It is proposed that feature tag registration closely mimics the new |
375 |
|
|
MIME media type registration rules in [1], providing both type a) |
376 |
|
|
and b) namespaces. This proposal is based on the observation that |
377 |
|
|
the rules in [1] seem to be working nicely. |
378 |
|
|
|
379 |
|
|
|
380 |
|
|
4.2 Examples of parties who would want to register feature tags |
381 |
|
|
|
382 |
|
|
Feature registration allows for the quick introduction of new areas |
383 |
|
|
of negotiation in extensible negotiation mechanisms. In a Web |
384 |
|
|
context, examples of parties which might want to introduce new |
385 |
|
|
areas of negotiation are: |
386 |
|
|
|
387 |
|
|
1. Browser and browser component vendors, when inventing and |
388 |
|
|
implementing new features or components. |
389 |
|
|
|
390 |
|
|
2. The IETF or some other standards body, when creating a new |
391 |
|
|
standard for a content format, or when identifying a new type |
392 |
|
|
of user preference (for example a preference for |
393 |
|
|
representations without animated gifs). |
394 |
|
|
|
395 |
|
|
3. Content authors, when identifying a new type of user |
396 |
|
|
preference and creating new content to match. |
397 |
|
|
|
398 |
|
|
A fast registration process is mainly needed for registration by |
399 |
|
|
group 1 and 3. For 2, a slower process would suffice. |
400 |
|
|
|
401 |
|
|
|
402 |
|
|
4.3 Feature tag registration scenario |
403 |
|
|
|
404 |
|
|
Below is a scenario, in a Web context, for the registration of a |
405 |
|
|
feature tag which succeeds in being generally used. |
406 |
|
|
|
407 |
|
|
Time Action |
408 |
|
|
(months) |
409 |
|
|
|
410 |
|
|
t+0 Browser vendor A invents the new feature XY. |
411 |
|
|
|
412 |
|
|
t+1 Vendor A starts implementing XY, and completes a |
413 |
|
|
feature tag registration form for the `g.xy' tag. |
414 |
|
|
|
415 |
|
|
t+2 Vendor A submits the form and the IANA registers the `g.xy' |
416 |
|
|
feature tag. |
417 |
|
|
|
418 |
|
|
t+2.1 Vendor A releases a new browser version, which |
419 |
|
|
a) implements the feature XY |
420 |
|
|
b) has an entry under `g.xy' in its negotiation database, |
421 |
|
|
which tells extensible negotiation mechanisms that this |
422 |
|
|
feature is present |
423 |
|
|
|
424 |
|
|
t+2.5 `Early adopter' content authors start making content |
425 |
|
|
representations which use XY. |
426 |
|
|
|
427 |
|
|
t+3 Vendor B starts implementing XY in their own browser. |
428 |
|
|
|
429 |
|
|
t+3 The `g.xy' tag appears in lists of useful tags maintained by |
430 |
|
|
third parties. |
431 |
|
|
|
432 |
|
|
t+3.5 Vendor B releases a new browser version, which |
433 |
|
|
a) implements the feature XY |
434 |
|
|
b) has an entry under `g.xy' in its negotiation database, |
435 |
|
|
which tells extensible negotiation mechanisms that this |
436 |
|
|
feature is present |
437 |
|
|
|
438 |
|
|
t+3.5 Many content authors start making content representations |
439 |
|
|
which use XY. |
440 |
|
|
|
441 |
|
|
t+4 Vendor C starts implementing XY, and invents the extension |
442 |
|
|
XY_COLOR. |
443 |
|
|
|
444 |
|
|
t+4.5 Vendor C registers the `g.xy_color' feature tag. |
445 |
|
|
|
446 |
|
|
t+4.5 Vendor C releases a new browser version, which |
447 |
|
|
a) implements the features XY and XY_COLOR |
448 |
|
|
b) has appropriate entries under `g.xy' and `g.xy_color' |
449 |
|
|
in its database |
450 |
|
|
|
451 |
|
|
t+10 90% of all deployed browsers support XY. Content authors |
452 |
|
|
start using XY it without bothering to provide an alternate |
453 |
|
|
representation. |
454 |
|
|
|
455 |
|
|
|
456 |
|
|
4.4 Volume considerations |
457 |
|
|
|
458 |
|
|
Feature tag registration which will have to keep pace with the |
459 |
|
|
introduction of new features by vendors. |
460 |
|
|
|
461 |
|
|
In particular in the Web domain, vendors are moving fast, and this |
462 |
|
|
will inevitably lead to a feature tag namespace which contains a |
463 |
|
|
lot of tags. Also, a lot of tags will be `dead' tags, tags related |
464 |
|
|
to features which failed to take off and gain widespread use. |
465 |
|
|
Compare this to the situation in the USENET newsgroup namespace. |
466 |
|
|
|
467 |
|
|
Like a list of all MIME media types, a list of all registered |
468 |
|
|
feature tags will generally be too long to be useful to any content |
469 |
|
|
author. Third parties could filter the feature tag namespace and |
470 |
|
|
compile short lists of useful tags. In the Web domain, Web |
471 |
|
|
indexing robots could, while traversing the web, gather statistics |
472 |
|
|
about actual use of feature tags; these statistics could help in |
473 |
|
|
compiling lists. |
474 |
|
|
|
475 |
|
|
|
476 |
|
|
4.5 Danger of excessive registration |
477 |
|
|
|
478 |
|
|
One danger for the feature tag namespace is the emergence of |
479 |
|
|
excessive registration as seen in the internet domain name system |
480 |
|
|
(DNS) namespace. |
481 |
|
|
|
482 |
|
|
We speculate that the various forces which contributed to the DNS |
483 |
|
|
registration problems are absent for feature tags: feature tags |
484 |
|
|
will not be very visible to end users, and registration of a |
485 |
|
|
feature tag does not mean you get exclusive use. |
486 |
|
|
|
487 |
|
|
We therefore do not expect excessive registration to occur. We |
488 |
|
|
note it has not occured (so far) in the MIME media type namespace. |
489 |
|
|
Of course it is possible to update the registration procedure if |
490 |
|
|
excessive registration _does_ occur. A necessary precaution is to |
491 |
|
|
reserve a part of the feature tag namespace for future use. |
492 |
|
|
|
493 |
|
|
|
494 |
|
|
5 Security considerations |
495 |
|
|
|
496 |
|
|
When used, negotiation mechanisms usually reveal some information |
497 |
|
|
about one party to other parties. This may raise privacy concerns, |
498 |
|
|
and may allow a malicious party to make more educated guesses about |
499 |
|
|
the presence of security holes in the other party. |
500 |
|
|
|
501 |
|
|
|
502 |
|
|
6 Acknowledgments |
503 |
|
|
|
504 |
|
|
The idea of creating a vocabulary of areas of negotiation, which is |
505 |
|
|
maintained in a central open registry, is due to discussions on |
506 |
|
|
extensible negotiation mechanisms in the IETF HTTP working group. |
507 |
|
|
The authors wish to thank Larry Masinter and Graham Klyne for |
508 |
|
|
contributing to discussions about feature tag registration. |
509 |
|
|
|
510 |
|
|
|
511 |
|
|
7 References |
512 |
|
|
|
513 |
|
|
[1] N. Freed, J. Klensin, J. Postel, Multipurpose Internet Mail |
514 |
|
|
Extensions (MIME) Part Four: Registration Procedures. RFC |
515 |
|
|
2048, BCP 13, Network Working Group, November 1996 |
516 |
|
|
|
517 |
|
|
[2] R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, and |
518 |
|
|
T. Berners-Lee. Hypertext Transfer Protocol -- HTTP/1.1. RFC |
519 |
|
|
2068, HTTP Working Group, January, 1997. |
520 |
|
|
|
521 |
|
|
[3] K. Holtman, A. Mutz. Transparent Content Negotiation in HTTP. |
522 |
|
|
Internet-Draft draft-ietf-http-negotiation-03.txt, HTTP Working |
523 |
|
|
Group. July 1997. |
524 |
|
|
|
525 |
|
|
|
526 |
|
|
8 Authors' addresses |
527 |
|
|
|
528 |
|
|
Koen Holtman |
529 |
|
|
Technische Universiteit Eindhoven |
530 |
|
|
Postbus 513 |
531 |
|
|
Kamer HG 6.57 |
532 |
|
|
5600 MB Eindhoven (The Netherlands) |
533 |
|
|
Email: koen@win.tue.nl |
534 |
|
|
|
535 |
|
|
Andrew H. Mutz |
536 |
|
|
Hewlett-Packard Company |
537 |
|
|
1501 Page Mill Road 3U-3 |
538 |
|
|
Palo Alto CA 94304, USA |
539 |
|
|
Fax +1 415 857 4691 |
540 |
|
|
Email: mutz@hpl.hp.com |
541 |
|
|
|
542 |
|
|
|
543 |
|
|
Expires: January 28, 1998 |
544 |
|
|
|
545 |
|
|
|