/[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 - (hide annotations) (download)
Tue Jun 15 08:04:04 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     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