1 |
wakaba |
1.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 |