1 |
|
2 |
HTTP Working Group Koen Holtman, TUE |
3 |
Internet-Draft Andrew Mutz, Hewlett-Packard |
4 |
Expires: April 30, 1997 October 30, 1996 |
5 |
|
6 |
|
7 |
Feature Tag Registration Procedures |
8 |
|
9 |
draft-ietf-http-feature-reg-00.txt |
10 |
|
11 |
|
12 |
STATUS OF THIS MEMO |
13 |
|
14 |
This document is an Internet-Draft. Internet-Drafts are |
15 |
working documents of the Internet Engineering Task Force |
16 |
(IETF), its areas, and its working groups. Note that other |
17 |
groups may also distribute working documents as |
18 |
Internet-Drafts. |
19 |
|
20 |
Internet-Drafts are draft documents valid for a maximum of |
21 |
six months and may be updated, replaced, or obsoleted by |
22 |
other documents at any time. It is inappropriate to use |
23 |
Internet-Drafts as reference material or to cite them other |
24 |
than as "work in progress". |
25 |
|
26 |
To learn the current status of any Internet-Draft, please |
27 |
check the "1id-abstracts.txt" listing contained in the |
28 |
Internet-Drafts Shadow Directories on ftp.is.co.za |
29 |
(Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific |
30 |
Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US |
31 |
West Coast). |
32 |
|
33 |
Distribution of this document is unlimited. Please send |
34 |
comments to the HTTP working group at |
35 |
<http-wg@cuckoo.hpl.hp.com>. Discussions of the working |
36 |
group are archived at |
37 |
<URL:http://www.ics.uci.edu/pub/ietf/http/>. General |
38 |
discussions about HTTP and the applications which use HTTP |
39 |
should take place on the <www-talk@w3.org> mailing list. |
40 |
|
41 |
This draft is part of a document set about transparent content |
42 |
negotiation in HTTP. See |
43 |
<URL:http://gewis.win.tue.nl/~koen/conneg/> for related |
44 |
documents. |
45 |
|
46 |
|
47 |
ABSTRACT |
48 |
|
49 |
The internet draft draft-holtman-http-negotiation-03.txt |
50 |
(Transparent Content Negotiation in HTTP) specifies a `feature |
51 |
negotiation' mechanism for negotiation on content characteristics |
52 |
other than MIME type, charset, and language. Feature negotiation |
53 |
allows the quick introduction of new dimensions of negotiation |
54 |
through the registration of `feature tags'. A feature tag |
55 |
identifies a capability of a user agent or a preference of a user. |
56 |
|
57 |
This document discusses considerations related to feature tag |
58 |
registration, and contains a proposed definition of a feature tag |
59 |
registration procedure. Feature tag registration is foreseen as an |
60 |
ongoing, open process. It should keep pace with the introduction |
61 |
of new rendering features by web software vendors, and other |
62 |
parties such as standards bodies. |
63 |
|
64 |
|
65 |
TABLE OF CONTENTS |
66 |
|
67 |
1 Introduction |
68 |
|
69 |
2 Background and design considerations |
70 |
2.1 Purpose of feature negotiation |
71 |
2.2 Parties who would want to register feature tags |
72 |
2.3 Feature tag registration timeline |
73 |
2.4 Volume considerations |
74 |
2.5 The IANA |
75 |
2.6 Potential problems of a review-less registration process |
76 |
2.6.1 Excessive registration, trademark fights |
77 |
2.6.2 Intentional misregistration |
78 |
2.7 Partitioning the feature tag name-space |
79 |
|
80 |
3 Feature tag registration |
81 |
3.1 Registration trees |
82 |
3.1.1 IETF tree |
83 |
3.1.2 Global tree |
84 |
3.1.3 Local or specialized tree |
85 |
3.1.4 Special `x.' tree |
86 |
3.1.5 Additional registration trees |
87 |
3.2 Registration requirements |
88 |
3.2.1 Functionality requirement |
89 |
3.2.2 Naming requirements |
90 |
3.2.3 Specification requirements |
91 |
3.2.4 Security requirements |
92 |
3.2.5 Publication requirements |
93 |
|
94 |
3.3 Registration procedure |
95 |
3.3.1 Present the feature tag to the community for review |
96 |
3.3.2 IESG approval |
97 |
3.3.3 IANA registration |
98 |
3.3.4 Delayed publication |
99 |
|
100 |
3.4 Comments on feature tag registrations |
101 |
3.5 Location of registered feature tag list |
102 |
3.6 IANA procedures for registering feature tags |
103 |
3.7 Change control |
104 |
3.8 Registration template |
105 |
|
106 |
4 Acknowledgments |
107 |
|
108 |
5 References |
109 |
|
110 |
6 Author's address |
111 |
|
112 |
Appendix A: Feature tag summaries |
113 |
|
114 |
Appendix B: IANA and RFC editor to-do list |
115 |
|
116 |
|
117 |
1 Introduction |
118 |
|
119 |
The internet draft draft-holtman-http-negotiation-03.txt |
120 |
(Transparent Content Negotiation in HTTP) specifies a `feature |
121 |
negotiation' mechanism for negotiation on content characteristics |
122 |
other than MIME type, charset, and language. Feature negotiation |
123 |
allows the quick introduction of new dimensions of negotiation |
124 |
through the registration of `feature tags'. A feature tag |
125 |
identifies a capability of a user agent or a preference of a user. |
126 |
|
127 |
This document discusses considerations related to feature tag |
128 |
registration, and contains a proposed definition of a feature tag |
129 |
registration procedure. Feature tag registration is foreseen as an |
130 |
ongoing, open process which will keep pace with the introduction |
131 |
of new rendering features by web software vendors, and other |
132 |
parties such as standards bodies. |
133 |
|
134 |
Section 2 discusses considerations related to feature tag |
135 |
registration. Section 3 contains a proposed definition of a |
136 |
feature tag registration procedure. |
137 |
|
138 |
|
139 |
2 Background and design considerations |
140 |
|
141 |
This section provides background material related to the design of |
142 |
the feature tag registration procedures. It does not contain any |
143 |
normative material. This section will be deleted or moved to an |
144 |
appendix in the final version of this document. |
145 |
|
146 |
See Section 4 of [2] for an overview of transparent content |
147 |
negotiation and feature negotiation. Section 7 of [2] contains |
148 |
some examples of the use of feature tags. Section 6 of [2] covers |
149 |
the technical aspects of feature negotiation mechanism. This |
150 |
document supersedes Section 8 (Feature tag registration) of [2]. |
151 |
|
152 |
For examples of registration procedures, see [3]. |
153 |
|
154 |
|
155 |
2.1 Purpose of feature negotiation |
156 |
|
157 |
The feature negotiation mechanism of transparent content |
158 |
negotiation [2] is intended to provide a better alternative to |
159 |
content negotiation based on the user-agent field. User-agent |
160 |
negotiation has many disadvantages: it is cache-unfriendly, |
161 |
difficult to maintain, and significant time is required to keep up |
162 |
with new user agent releases. |
163 |
|
164 |
The main advantage of user-agent based negotiation is that it can be |
165 |
used immediately after a user agent with a new feature is released, |
166 |
without waiting for any standardization actions. This |
167 |
advantage should be retained in feature negotiation. If the |
168 |
content creation community can't use feature negotiation to |
169 |
negotiate on the new hot feature of the week, feature negotiation |
170 |
will not succeed in supplanting user-agent based negotiation. |
171 |
|
172 |
Therefore the registration of tags related to browser or browser |
173 |
component features needs to be a very fast process. It must be |
174 |
possible to register feature tags in parallel with the release of a |
175 |
new browser alpha version. |
176 |
|
177 |
|
178 |
2.2 Parties who would want to register feature tags |
179 |
|
180 |
Feature negotiation allows the quick introduction of new dimensions |
181 |
of negotiation through the registration of `feature tags'. The |
182 |
following parties might want to introduce new dimensions of |
183 |
negotiation: |
184 |
|
185 |
1. Browser and browser component vendors, when inventing and |
186 |
implementing new features or components. |
187 |
|
188 |
2. The IETF or some other standards body, when creating a new |
189 |
standard for a content format, or when identifying a new type |
190 |
of user preference (for example a preference for |
191 |
representations without animated gifs). |
192 |
|
193 |
3. Content authors, when identifying a new type of user |
194 |
preference and creating variants to match. |
195 |
|
196 |
Note that if (some) users can configure their browsers to identify |
197 |
new feature tags, the introduction of new preferences does |
198 |
not require the updating of browser software. |
199 |
|
200 |
A fast registration process is mainly needed for registration by |
201 |
group 1 and 3. For 2, a slower process would suffice. Thus, one |
202 |
could create separate registration subtrees for these groups, with |
203 |
no review for 1 and 3, and some review for 2. |
204 |
|
205 |
|
206 |
2.3 Feature tag registration timeline |
207 |
|
208 |
This is a timeline for the registration of a feature tag which |
209 |
succeeds in being generally used. |
210 |
|
211 |
Time Action |
212 |
(months) |
213 |
|
214 |
t+0 Browser vendor A invents the new feature XY. |
215 |
|
216 |
t+1 Vendor A starts implementing XY, and writes a |
217 |
feature tag registration form for the `xy' tag. |
218 |
|
219 |
t+2 Vendor A submits the form and the IANA registers the `xy' |
220 |
feature tag. |
221 |
|
222 |
t+2.1 Vendor A releases a new browser version, which |
223 |
a) implements the feature XY |
224 |
b) has the `xy' tag present when doing feature negotiation. |
225 |
|
226 |
t+2.5 `Early adopter' content authors start making variants |
227 |
which use XY. |
228 |
|
229 |
t+3 Vendor B starts implementing XY in their own browser. |
230 |
|
231 |
t+3 The `xy' tag appears in lists of useful tags maintained by |
232 |
third parties. |
233 |
|
234 |
t+3.5 Vendor B releases a new browser version, which |
235 |
a) implements the feature XY |
236 |
b) has the `xy' tag present when doing feature negotiation. |
237 |
|
238 |
t+3.5 Many content authors start making variants which use XY. |
239 |
|
240 |
t+4 Vendor C starts implementing XY, and invents the extension |
241 |
XY_COLOR. |
242 |
|
243 |
t+4.5 Vendor C registers the `xy_color' feature tag. |
244 |
|
245 |
t+4.5 Vendor C releases a new browser version, which |
246 |
a) implements the features XY and XY_COLOR |
247 |
b) has the `xy' and `xy_color' tags present when doing |
248 |
feature negotiation. |
249 |
|
250 |
t+10 90% of all deployed browsers support XY. Content authors |
251 |
start using XY it without bothering to provide an alternate |
252 |
representation. |
253 |
|
254 |
|
255 |
2.4 Volume considerations |
256 |
|
257 |
In order to be effective at replacing user-agent negotiation, |
258 |
feature tag registration which will have to keep pace with the |
259 |
introduction of new rendering features by web software vendors. |
260 |
|
261 |
As vendors are moving fast, this inevitably leads to a feature tag |
262 |
name-space which contains a lot of tags. Also, a lot of tags |
263 |
will be `dead' tags, tags related to features which failed to take |
264 |
off and gain widespread use. Compare this to the situation in the |
265 |
USENET newsgroup name-space. |
266 |
|
267 |
A list of _all_ registered feature tags will therefore generally be |
268 |
too long to be useful to any content author. Third parties could |
269 |
filter the feature tag name-space and compile short lists of useful |
270 |
tags. Web indexing robots could, while traversing the web, gather |
271 |
statistics about actual use of feature tags; these statistics could |
272 |
help in compiling lists. |
273 |
|
274 |
This filtering after registration basically follows the HTML 3.2 |
275 |
model of creating order _after_ the marketplace battles have died |
276 |
down. |
277 |
|
278 |
|
279 |
2.5 The IANA |
280 |
|
281 |
With the MIME registration procedures being updated (see [3]), |
282 |
there has been some confusion over what the IANA will register. |
283 |
Jon Postel recently told us that: |
284 |
|
285 |
The IANA is pretty good at keeping lists. It is not so good at |
286 |
evaluating the merits (or lack thereof) of the requests to add |
287 |
things to lists. [...] So, yes the IANA would keep the list of |
288 |
"feature tags" provided that that there is either a very simple |
289 |
way to decide if requests pass muster, or a designated someone |
290 |
else will be available to make that decision. |
291 |
|
292 |
So two types of registration name-spaces can be created: |
293 |
|
294 |
a) a space with feature tag review process performed by the IETF |
295 |
|
296 |
b) a space with very basic registration rules which do not take |
297 |
the merit of the feature tag into account. To quote [3], |
298 |
this type of registration "does not imply endorsement, |
299 |
approval, or recommendation by the IANA or IETF or even |
300 |
certification that the specification is adequate." |
301 |
|
302 |
For features introduced by browser and browser component vendors, a |
303 |
space with a type b) registration process seems necessary, if only |
304 |
because the IETF does not have the manpower required for a review |
305 |
process which would meet the speed and volume requirements. |
306 |
|
307 |
|
308 |
2.6 Potential problems of a review-less registration process |
309 |
|
310 |
Several potential problems connected to having a registration |
311 |
process without review have been identified. These are covered in |
312 |
the subsections below. |
313 |
|
314 |
|
315 |
2.6.1 Excessive registration, trademark fights |
316 |
|
317 |
One danger is excessive registration as seen in the internet domain |
318 |
name-space. |
319 |
|
320 |
We speculate that the various forces which contributed to the |
321 |
domain name registration problems are absent for feature tags: |
322 |
feature tags will not be very visible to end users, and |
323 |
registration of a feature tag does not mean you get exclusive use. |
324 |
|
325 |
Therefore we do not expect excessive registration to occur. Of |
326 |
course it is possible to update the registration procedure if |
327 |
excessive registration _does_ occur. A necessary precaution is to |
328 |
reserve a part of the feature tag name-space for future use. |
329 |
|
330 |
As an a-priori safeguard, the IANA could be allowed to reject |
331 |
registrations which are `obviously bogus', and be allowed to reject |
332 |
or delay the registration of `large collections of tags with |
333 |
questionable value'. Such decisions could be appealed to the IESG. |
334 |
|
335 |
Note however that the danger of excessive registration is also |
336 |
present in the vendor and personal spaces of [3], and that [3] does |
337 |
not specify such safeguards. |
338 |
|
339 |
|
340 |
2.6.2 Intentional misregistration |
341 |
|
342 |
Vendor X could try to pre-emptively block the development of a |
343 |
`walking gifs' feature by other vendors by registering a |
344 |
`walking_gifs' feature tag which refers to some bogus capability or |
345 |
preference. |
346 |
|
347 |
However, we feel that the English language is flexible enough to |
348 |
allow the invention of alternative tags to label a real `walking |
349 |
gifs' feature, if ever developed. |
350 |
|
351 |
Also, the registration rules could allow the IANA to reject |
352 |
registration `if the tag name is clearly bogus or misleading'. The |
353 |
rejection would have to include a suggestion for a tag name which |
354 |
_would_ be acceptable. |
355 |
|
356 |
In addition the registration process does mandate a description of |
357 |
the feature in some detail. |
358 |
|
359 |
|
360 |
2.7 Partitioning the feature tag name-space |
361 |
|
362 |
A partitioning of the feature tag name-space (for example through |
363 |
the definition of a standard prefix naming scheme) can help to keep |
364 |
the tag registry manageable. The partitioning could be based on |
365 |
several criteria, or combinations thereof: |
366 |
|
367 |
a) who registered the tag ( ietf / vendor / other ) |
368 |
|
369 |
b) the intended scope ( global / local / personal / experimental ) |
370 |
|
371 |
c) the area of negotiation: |
372 |
- capability / preference |
373 |
- related to HTML / not related to HTML |
374 |
- specific to one MIME type / not MIME type specific |
375 |
- for static content / for dynamic content |
376 |
- etc. |
377 |
|
378 |
The options for partitioning have not been carefully explored yet, |
379 |
much work still needs to be done in this area. In particular, it |
380 |
is not yet clear whether a useful partitioning based on c) can be |
381 |
found. |
382 |
|
383 |
|
384 |
3 Feature tag registration |
385 |
|
386 |
[##Note: This section is a proposal only. Much of the text in this |
387 |
section was taken from [3]. Though this section tentatively |
388 |
introduces a 4-way top level partitioning of the feature tag |
389 |
name-space, it does not discuss any sub-partitioning yet.##] |
390 |
|
391 |
Registration of a new feature tag starts with the construction of a |
392 |
registration proposal. Registration may occur in several different |
393 |
registration trees, which have different requirements as discussed |
394 |
below. The following sections describe the requirements and |
395 |
procedures used for each of the different registration trees. |
396 |
|
397 |
|
398 |
3.1 Registration trees |
399 |
|
400 |
The following subsections define registration "trees", |
401 |
distinguished by the use of faceted names (e.g., names of the form |
402 |
"tree.feature_name"). |
403 |
|
404 |
|
405 |
3.1.1 IETF tree |
406 |
|
407 |
The IETF tree is intended for feature tags of general interest to |
408 |
the Internet Community. Registration in the IETF tree requires |
409 |
approval by the IESG and publication of the feature tag |
410 |
specification as some form of RFC. |
411 |
|
412 |
Feature tags in the IETF tree normally have names that are not |
413 |
explicitly faceted, i.e., do not contain period (".", full stop) |
414 |
characters. |
415 |
|
416 |
The "owner" of a feature tag in the IETF tree is assumed to be the |
417 |
IETF itself. Modification or alteration of the specification |
418 |
requires the same level of processing (e.g. standards track) |
419 |
required for the initial registration. |
420 |
|
421 |
|
422 |
3.1.2 Global tree |
423 |
|
424 |
The global tree is intended for feature tags of general interest to |
425 |
the Internet Community. Unlike registration in the IETF tree, |
426 |
registration in the global tree does not require approval by the |
427 |
IESG. A registration may be placed in the global tree by anyone |
428 |
who has the need to allow for feature negotiation on a particular |
429 |
capability or preference. |
430 |
|
431 |
Typically, if a web browser vendor or browser component vendor |
432 |
introduces a new feature to the Internet Community, and if it is |
433 |
meaningful to do feature negotiation on it, the vendor can register |
434 |
a feature tag in the global tree. |
435 |
|
436 |
The owner of "global" tags and associated specifications is the |
437 |
person or entity making the registration, or one to whom |
438 |
responsibility has been transferred as described below. |
439 |
|
440 |
Tags in the global tree will be distinguished by the leading facet |
441 |
"g.". While public exposure and review of feature tags to be |
442 |
registered in the global tree is not required, using the |
443 |
ietf-feature-tags list for review is strongly encouraged to improve |
444 |
the quality of those specifications. Registrations in the global |
445 |
tree may be submitted directly to the IANA. |
446 |
|
447 |
[##Note: the name `global' for this tree is only a proposal. It |
448 |
could be called the World-wide tree to get a "w." leading facet.##] |
449 |
|
450 |
|
451 |
3.1.3 Local or specialized tree |
452 |
|
453 |
The local tree is intended for feature tags meant to label |
454 |
capabilities or preferences which are relevant in a localized, |
455 |
specialized, restricted, or experimental context. |
456 |
|
457 |
Variant data which is accessible to the whole Internet Community, |
458 |
but usable only with locally extended browsing software, is |
459 |
typically labeled with tags in the local tree. |
460 |
|
461 |
The owner of "local" tags and associated specifications is the |
462 |
person or entity making the registration, or one to whom |
463 |
responsibility has been transferred as described below. |
464 |
|
465 |
Tags in the local tree will be distinguished by the leading facet |
466 |
"l.". While public exposure and review of feature tags to be |
467 |
registered in the local tree is not required, using the |
468 |
ietf-feature-tags list for review is strongly encouraged to improve |
469 |
the quality of those specifications. Registrations in the local |
470 |
tree may be submitted directly to the IANA. |
471 |
|
472 |
|
473 |
3.1.4 Special `x.' tree |
474 |
|
475 |
Feature tags with "x." as the first facet are reserved for use in |
476 |
experimental contexts. These tags are unregistered, experimental, |
477 |
and should be used only with the active agreement of the parties |
478 |
exchanging them. |
479 |
|
480 |
With the low-barrier registration procedures described above for |
481 |
global and local trees, it should rarely, if ever, be necessary to |
482 |
use experimental tags, and as such use of these tags is |
483 |
discouraged. |
484 |
|
485 |
|
486 |
3.1.5 Additional registration trees |
487 |
|
488 |
From time to time and as required by the community, the IANA may, |
489 |
with the advice and consent of the IESG, create new top-level |
490 |
registration trees. Establishment of these new trees will be |
491 |
announced through RFC publication approved by the IESG. |
492 |
|
493 |
|
494 |
3.2 Registration requirements |
495 |
|
496 |
Feature tag registration proposals are all expected to conform |
497 |
to various requirements laid out in the following sections. |
498 |
|
499 |
|
500 |
3.2.1 Functionality requirement |
501 |
|
502 |
A feature tag must function as an actual feature negotiation |
503 |
capability or preference indicator. A feature tag must never |
504 |
indicate a property of a representation, but must indicate the |
505 |
capability to handle a property of a representation, or the |
506 |
preference for property of a representation. |
507 |
|
508 |
A feature tag may not simply reproduce the negotiation |
509 |
functionality of the existing standardized HTTP negotiation |
510 |
dimensions mentioned in Section 4.6 of [2]. In particular, media |
511 |
types, character sets, transfer encodings, and languages may not be |
512 |
registered as feature tags. |
513 |
|
514 |
Sub-properties of media types, character sets, and languages may be |
515 |
registered as feature tags, because in [2], negotiation on such |
516 |
sub-properties is often only viable within the feature negotiation |
517 |
framework. The power of media type parameter negotiation in [2] is |
518 |
very limited. Therefore, whenever powerful negotiation on a |
519 |
sub-property of a media type is desirable, registration of a |
520 |
feature tag for this sub-property is allowed even if it can also be |
521 |
expressed as a media type parameter. |
522 |
|
523 |
[##Question to be resolved: Content negotiation allows a primitive |
524 |
form of negotiation on HTTP protocol extensions, by offering a |
525 |
choice between a variant which is transferred using the protocol |
526 |
extension, and a variant without it. The planned PEP standard will |
527 |
offer a much more powerful and scalable form of negotiation in this |
528 |
area. The wide-spread use of feature negotiation to negotiate on |
529 |
protocol extensions could be harmful to caching. Should the |
530 |
registration of feature tags which intend to allow for negotiation |
531 |
on HTTP protocol extensions therefore be disallowed? Or should |
532 |
part of the feature tag name-space be reserved to mirror the |
533 |
information which is normally conveyed through PEP?##] |
534 |
|
535 |
|
536 |
3.2.2 Naming requirements |
537 |
|
538 |
All feature tag names must be unique, and must conform to the HTTP |
539 |
token syntax [1]. |
540 |
|
541 |
Any predefined feature tag values and any defined tag value formats |
542 |
must also conform to the HTTP token syntax [1]. |
543 |
|
544 |
The IANA may reject tag names which are obviously bogus or |
545 |
misleading. The rejection has to include a suggestion for a tag |
546 |
name which would be acceptable. Note however that other than in |
547 |
the IETF tree, the acceptance of a feature tag does not imply |
548 |
certification that the tag is adequately named. |
549 |
|
550 |
|
551 |
3.2.3 Specification requirements |
552 |
|
553 |
For feature tags which indicate a preference, a precise and openly |
554 |
available specification of the preference is required, and must at |
555 |
a minimum be referenced by, if it isn't actually included in, the |
556 |
feature tag registration proposal itself. |
557 |
|
558 |
For feature tags registered in the IETF tree which indicate a |
559 |
capability, a precise and openly available specification of the |
560 |
capability is required. It must at a minimum be referenced by (if |
561 |
not actually included in) the feature tag registration |
562 |
proposal itself. |
563 |
|
564 |
For feature tags in the global and local trees which indicate a |
565 |
capability, an openly available description of the capability is |
566 |
minimally required. The specification of detailed syntax and |
567 |
processing particulars need not be publicly available. Such |
568 |
registration proposals are explicitly permitted to include a |
569 |
specification of which software and version (first) implements the |
570 |
indicated capability. References to or inclusion of specifications |
571 |
in these registration proposals is encouraged but not required. |
572 |
|
573 |
The registration of feature tags referencing patented technology is |
574 |
specifically permitted. However the restrictions set forth in RFC |
575 |
1602 on the use of patented technology in standards-track protocols |
576 |
must be respected when the specification of a feature tag is part |
577 |
of a standards-track protocol. |
578 |
|
579 |
|
580 |
3.2.4 Security requirements |
581 |
|
582 |
An analysis of security issues is required for all tags |
583 |
registered in the IETF tree. (This is in accordance with the basic |
584 |
requirements for all IETF protocols.) A similar analysis for |
585 |
feature tags registered in the global or local trees is encouraged |
586 |
but not required. All descriptions of security issues must |
587 |
be as accurate as possible regardless of registration tree. In |
588 |
particular, a statement that there are "no security issues |
589 |
associated with the indicated feature" must not be confused with |
590 |
"the security issues associates with this feature have not been |
591 |
assessed". |
592 |
|
593 |
There is absolutely no requirement that feature tags registered |
594 |
in any tree be secure or completely free from risks. |
595 |
Nevertheless, all known security risks must be identified in |
596 |
the registration of a feature tag, again regardless of |
597 |
registration tree. |
598 |
|
599 |
The security considerations section of all registrations is subject |
600 |
to continuing evaluation and modification, and in particular may be |
601 |
extended by use of the "comments on feature tags" mechanism |
602 |
described in subsequent sections. |
603 |
|
604 |
|
605 |
3.2.5 Publication requirements |
606 |
|
607 |
Proposals for feature tags registered in the IETF tree must be |
608 |
published as RFCs. RFC publication of global and local feature tag |
609 |
proposals is not required. In all cases the IANA will retain |
610 |
copies of all feature tag proposals and "publish" them as part of |
611 |
the feature tag registration tree itself. |
612 |
|
613 |
Other than in the IETF tree, the registration of a feature tag does |
614 |
not imply endorsement, approval, or recommendation by the IANA or |
615 |
the IETF or even certification that the specification is adequate. |
616 |
|
617 |
It is neither possible nor necessary for the IANA to conduct a |
618 |
comprehensive review of feature tag registrations. Nevertheless, |
619 |
the IANA has the authority to identify obviously incompetent |
620 |
material and exclude it. |
621 |
|
622 |
|
623 |
3.3 Registration procedure |
624 |
|
625 |
The following procedure has been implemented by the IANA for review |
626 |
and approval of new feature tags. This is not a formal standards |
627 |
process, but rather an administrative procedure intended to allow |
628 |
the fast creation of negotiation capabilities for newly introduced |
629 |
features. |
630 |
|
631 |
For registration in the IETF tree, the normal IETF processes should |
632 |
be followed. Posting of an internet-draft and announcement |
633 |
on the ietf-feature-tags list (as described in the next subsection) |
634 |
is a first step. For registrations in the global or local trees, |
635 |
the initial review step described below may be omitted and the tag |
636 |
registered directly by submitting the template and an explanation |
637 |
to the IANA (at iana@isi.edu). However, authors of global or local |
638 |
feature tag specifications are encouraged to seek community review |
639 |
and comment whenever that is feasible. |
640 |
|
641 |
|
642 |
3.3.1 Present the feature tag to the community for review |
643 |
|
644 |
Send a proposed feature tag registration to the |
645 |
"ietf-feature-tags@iana.org" mailing list for a two week review |
646 |
period. This mailing list has been established for the purpose of |
647 |
reviewing proposed feature tags. Proposed feature tags are not |
648 |
formally registered and must not be used; the "x." prefix can be |
649 |
used until registration is complete. |
650 |
|
651 |
The intent of the public posting is to solicit comments and |
652 |
feedback on the choice of tag name, the clarity of the tag |
653 |
specification, and a review of any security considerations. The |
654 |
submitter may submit a revised registration proposal, or withdraw |
655 |
the registration proposal completely, at any time. |
656 |
|
657 |
|
658 |
3.3.2 IESG approval |
659 |
|
660 |
Feature tags registered in the IETF tree must be submitted to |
661 |
the IESG for approval. |
662 |
|
663 |
|
664 |
3.3.3 IANA registration |
665 |
|
666 |
Provided that the proposed tag meets the requirements for feature |
667 |
tags and has obtained whatever approval is necessary, the |
668 |
author may submit the registration request to the IANA, which |
669 |
will register the feature tag and make the feature tag |
670 |
registration available to the community. |
671 |
|
672 |
|
673 |
3.3.4 Delayed publication |
674 |
|
675 |
By default, feature tag registration proposals are published by the |
676 |
IANA immediately after registration of the tag. |
677 |
|
678 |
In some situations, a software vendor may not wish that a |
679 |
specification of a tag for a planned new feature is published |
680 |
before the date at which the software implementing this feature is |
681 |
released to the Internet Community. Therefore, when submitting a |
682 |
feature tag registration proposal for a planned feature, a vendor |
683 |
may request a publication delay of up to four weeks after |
684 |
registration of the tag by the IANA. |
685 |
|
686 |
Immediately after receiving a notification of registration from the |
687 |
IANA, the vendor may release software which recognizes the tag to |
688 |
the Internet Community, and make public the tag specification |
689 |
though his own channels. |
690 |
|
691 |
|
692 |
3.4 Comments on feature tag registrations |
693 |
|
694 |
Comments on registered feature tags may be submitted by members of |
695 |
the community to the IANA. These comments will be passed on to the |
696 |
"owner" of the feature tag if possible. Submitters of comments may |
697 |
request that their comment be attached to the feature tag |
698 |
registration itself, and if the IANA approves of this the comment |
699 |
will be made accessible in conjunction with the tag registration |
700 |
itself. |
701 |
|
702 |
|
703 |
3.5 Location of registered feature tag list |
704 |
|
705 |
Feature tag registrations will be posted in the anonymous FTP |
706 |
directory "ftp://ftp.isi.edu/in-notes/iana/assignments/feature- |
707 |
tags/" and all registered feature tags will be listed in the |
708 |
periodically issued "Assigned Numbers" RFC [currently RFC- 1700]. |
709 |
The feature tag description and other supporting material may also |
710 |
be published as an Informational RFC by sending it to |
711 |
"rfc-editor@isi.edu" (please follow the instructions to RFC authors |
712 |
[RFC-1543]). |
713 |
|
714 |
|
715 |
3.6 IANA procedures for registering feature tags |
716 |
|
717 |
The IANA will only register feature tags in the IETF tree in |
718 |
response to a communication from the IESG stating that a given |
719 |
registration has been approved. |
720 |
|
721 |
Global and local tags will be registered by the IANA automatically |
722 |
and without any formal review as long as the following minimal |
723 |
conditions are met: |
724 |
|
725 |
(1) Feature tags must indicate an actual feature negotiation |
726 |
capability or preference. |
727 |
|
728 |
(2) All feature tag names must be unique, and must conform to the |
729 |
HTTP token syntax. Any predefined feature tag values and |
730 |
any defined tag value formats must also conform to the HTTP |
731 |
token syntax. |
732 |
|
733 |
(3) For feature tags which indicate a preference, a precise and |
734 |
openly available specification of the preference is |
735 |
required. For feature tags which indicate a capability, an |
736 |
openly available description of the capability is minimally |
737 |
required. |
738 |
|
739 |
(4) Any security considerations given must not be obviously |
740 |
bogus. (It is neither possible nor necessary for the |
741 |
IANA to conduct a comprehensive security review of |
742 |
feature tag registrations. Nevertheless, the IANA has |
743 |
the authority to identify obviously incompetent material |
744 |
and exclude it.) |
745 |
|
746 |
|
747 |
3.7 Change control |
748 |
|
749 |
Once a feature tag has been published by the IANA, the owner may |
750 |
request a change to its definition. The change request follows the |
751 |
following procedure: |
752 |
|
753 |
(1) Publish the revised template on the ietf-feature-tags list. |
754 |
|
755 |
(2) Leave at least two weeks for comments. |
756 |
|
757 |
(3) Publish using the IANA after formal review if required. |
758 |
|
759 |
Changes should be requested only when there are serious omissions |
760 |
or errors in the published specification. When review is required, |
761 |
a change request may be denied if it renders a use of negotiated |
762 |
capabilities that was valid under the previous definition invalid |
763 |
under the new definition. |
764 |
|
765 |
The owner of a feature tag may pass responsibility for the feature |
766 |
tag to another person or agency by informing the IANA and the |
767 |
ietf-feature-tags list; this can be done without discussion or |
768 |
review. |
769 |
|
770 |
The IESG may reassign responsibility for a feature tag. The most |
771 |
common case of this will be to enable changes to be made to tags |
772 |
where the author of the registration has died, moved out of contact |
773 |
or is otherwise unable to make changes that are important to the |
774 |
community. |
775 |
|
776 |
Feature tag registrations may not be deleted; feature tags which |
777 |
are no longer believed appropriate for use can be declared OBSOLETE |
778 |
by a change to their "intended use" field; such feature tags will |
779 |
be clearly marked in the lists published by the IANA. |
780 |
|
781 |
|
782 |
3.8 Registration template |
783 |
|
784 |
To: iana@isi.edu |
785 |
Subject: Registration of feature tag XXXX |
786 |
|
787 |
| Instructions are preceded by `|'. Some fields are optional. |
788 |
|
789 |
Feature tag name: |
790 |
|
791 |
Feature tag summary: |
792 |
|
793 |
| See appendix A for the format of a feature tag summary |
794 |
|
795 |
Presence of the tag indicates: |
796 |
|
797 |
Tag value (if any) indicates: |
798 |
|
799 |
Predefined tag values (if any): |
800 |
|
801 |
Absence of the tag indicates: [optional] |
802 |
|
803 |
Intended typical use: [optional] |
804 |
|
805 |
| Supply examples of Accept-Features headers, variant |
806 |
| descriptions, and/or variant lists. Add comments if |
807 |
| necessary. |
808 |
|
809 |
Detailed description of indicated capability or preference: [optional] |
810 |
|
811 |
| If more than 100 lines are needed, a reference to a related |
812 |
| standard or document is preferred. |
813 |
|
814 |
Related standards or documents: [optional] |
815 |
|
816 |
Applications or sites which will use this feature tag: [optional] |
817 |
|
818 |
| For applications, also specify the number of the first version |
819 |
| which will use the tag. |
820 |
|
821 |
Security considerations: |
822 |
|
823 |
Additional information: [optional] |
824 |
|
825 |
Keywords: [optional] |
826 |
|
827 |
Related feature tags: [optional] |
828 |
|
829 |
Related media types: [optional] |
830 |
|
831 |
| For example text/html if the tag indicates the capability |
832 |
| to handle some HTML extension. |
833 |
|
834 |
Related markup tags: [optional] |
835 |
|
836 |
| For example <table>. Note that the markup language does not |
837 |
| need to be text/html. Add comments if necessary. |
838 |
|
839 |
See also: [optional] |
840 |
|
841 |
Person & email address to contact for further information: |
842 |
|
843 |
Intended usage: |
844 |
|
845 |
| one of COMMON, LIMITED USE or OBSOLETE |
846 |
|
847 |
Author/Change controller: |
848 |
|
849 |
|
850 |
| Any other information that the author deems interesting may be |
851 |
| added below. |
852 |
|
853 |
|
854 |
4 Acknowledgments |
855 |
|
856 |
More than half of the text in Section 3 was taken from [3]. The |
857 |
authors wish to thank Larry Masinter for contributing to early |
858 |
discussions of feature tag registration. |
859 |
|
860 |
|
861 |
5 References |
862 |
|
863 |
[1] Fielding et al, Hypertext Transfer Protocol -- HTTP/1.1. |
864 |
Internet-Draft draft-ietf-http-v11-spec-06.txt, HTTP Working |
865 |
Group, July 4, 1996 |
866 |
|
867 |
[2] K. Holtman, A. Mutz, Transparent Content Negotiation in HTTP, |
868 |
Internet-Draft draft-holtman-http-negotiation-03.txt, HTTP |
869 |
Working Group, September 6, 1996 |
870 |
|
871 |
[3] N. Freed, J. Klensin, J. Postel, Multipurpose Internet Mail |
872 |
Extensions (MIME) Part Four: Registration Procedures |
873 |
Internet-Draft draft-ietf-822ext-mime-reg-04.txt, Network |
874 |
Working Group, June 1996 |
875 |
|
876 |
|
877 |
6 Author's address |
878 |
|
879 |
Koen Holtman |
880 |
Technische Universiteit Eindhoven |
881 |
Postbus 513 |
882 |
Kamer HG 6.57 |
883 |
5600 MB Eindhoven (The Netherlands) |
884 |
Email: koen@win.tue.nl |
885 |
|
886 |
Andrew H. Mutz |
887 |
Hewlett-Packard Company |
888 |
1501 Page Mill Road 3U-3 |
889 |
Palo Alto CA 94304, USA |
890 |
Fax +1 415 857 4691 |
891 |
Email: mutz@hpl.hp.com |
892 |
|
893 |
|
894 |
Appendix A: Feature tag summaries |
895 |
|
896 |
[##The text in this appendix will probably be included in the next |
897 |
version of [2]##] |
898 |
|
899 |
A feature tag summary is a compact description of a feature tag |
900 |
which uses the following typographical format: |
901 |
|
902 |
<tag declaration> |
903 |
|
904 |
<text describing the tag> |
905 |
|
906 |
This format was designed to allow for the easy construction of web |
907 |
pages listing many feature tags. |
908 |
|
909 |
The <tag declaration> part gives the tag name and specifies the |
910 |
intended use of the tag. There are four possible forms: |
911 |
|
912 |
Form of tag declaration: Intended use of tag: |
913 |
============================== =========================== |
914 |
tag_name without a value |
915 |
|
916 |
tag_name=value_description with zero or more values |
917 |
|
918 |
tag_name={value_description} with a single value |
919 |
|
920 |
tag_name<=value_description with a numeric range |
921 |
|
922 |
|
923 |
The <text describing the tag> part should consist of one to four |
924 |
sentences describing the tag. The text often starts with |
925 |
`Indicates support for ....' for tags describing capabilities and |
926 |
`Indicates a preference for ....' for tags describing preferences. |
927 |
An example of a feature tag summary is: |
928 |
|
929 |
html=version |
930 |
|
931 |
Indicates support for the given HTML version. Predefined |
932 |
values are 1.0, 2.0, 3.2. Example: Accept-Features: html=2.0, |
933 |
html=3.2, * |
934 |
|
935 |
|
936 |
Appendix B: IANA and RFC editor to-do list |
937 |
|
938 |
VERY IMPORTANT NOTE: This appendix is intended to communicate |
939 |
various editorial and procedural tasks the IANA and the RFC |
940 |
Editor should undertake prior to publication of this document |
941 |
as an RFC. This appendix should NOT appear in the actual RFC |
942 |
version of this document! |
943 |
|
944 |
This document refers to the feature tags mailing list |
945 |
ietf-feature-tags@iana.org. This list does not exist at the |
946 |
present time and needs to be created. |
947 |
|
948 |
The ftp://ftp.isi.edu/in-notes/iana/assignments/feature-tags/" area |
949 |
does not exist at the present time and needs to be created. |
950 |
|
951 |
|
952 |
Expires: April 30, 1997 |