/[suikacvs]/webroot/www/2004/id/draft-ietf-http-feature-scenarios-01.txt
Suika

Contents of /webroot/www/2004/id/draft-ietf-http-feature-scenarios-01.txt

Parent Directory Parent Directory | Revision Log Revision Log


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

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24