idnits 2.17.1 draft-snell-http-prefer-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 14. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 226. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 237. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 244. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 250. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 15, 2008) is 5887 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Individual Submission J. Snell 3 Internet-Draft February 15, 2008 4 Expires: August 18, 2008 6 Prefer Header for HTTP 7 draft-snell-http-prefer-02 9 Status of this Memo 11 By submitting this Internet-Draft, each author represents that any 12 applicable patent or other IPR claims of which he or she is aware 13 have been or will be disclosed, and any of which he or she becomes 14 aware will be disclosed, in accordance with Section 6 of BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on August 18, 2008. 34 Copyright Notice 36 Copyright (C) The IETF Trust (2008). 38 Abstract 40 This specification defines a new HTTP header that can be used by a 41 client to request that certain behaviors be implemented by a server 42 while processing a request. 44 Table of Contents 46 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 47 2. The Prefer Request Header . . . . . . . . . . . . . . . . . . . 3 48 3. The Preference-Applied Response Header . . . . . . . . . . . . 3 49 4. The "return-no-content" Preference . . . . . . . . . . . . . . 4 50 5. The "return-content" Preference . . . . . . . . . . . . . . . . 4 51 6. The "return-status" Preference . . . . . . . . . . . . . . . . 4 52 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4 53 7.1. The Registry of Preferences . . . . . . . . . . . . . . . . 4 54 8. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 55 9. Normative References . . . . . . . . . . . . . . . . . . . . . 5 56 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 5 57 Appendix B. Changes . . . . . . . . . . . . . . . . . . . . . . . 5 58 Appendix C. Notes to RFC Editor . . . . . . . . . . . . . . . . . 6 59 Appendix D. Editorial Notes . . . . . . . . . . . . . . . . . . . 6 60 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 61 Intellectual Property and Copyright Statements . . . . . . . . . . 7 63 1. Introduction 65 This specification defines a new HTTP header that can be used by a 66 client to request that certain behaviors be implemented by a server 67 while processing a request. 69 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 70 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 71 and "OPTIONAL" are to be interpreted as described in [RFC2119]. 73 2. The Prefer Request Header 75 The Prefer request-header is used to indicate that particular server 76 behaviors are preferred, but not required, by the client. Prefer is 77 similar in nature to the Expect header defined by [RFC2616] with the 78 exception that servers are allowed to ignore a clients stated 79 preferences. 81 Prefer = "Prefer" ":" 1#preference 83 preference = "return-no-content" | 84 "return-content" | 85 "return-status" | 86 preference-extension 87 preference-extension = token [ "=" ( token | quoted-string ) 88 *prefer-params ] 89 prefer-params = ";" token [ "=" ( token | quoted-string ) ] 91 This header is defined with an extensible syntax to allow for future 92 values included in the Registry of Preferences (see Section 7.1). A 93 server that does not recognize or is unable to comply with particular 94 preference values in the Prefer header of a request MUST ignore those 95 values and MUST NOT stop processing or signal an error. 97 Comparison of preference values is case-insensitive for unquoted 98 tokens and is case-sensitive for quoted-string preference-extensions. 100 An HTTP proxy MAY choose to honor a preference even if the origin 101 server does not. The Prefer request-header MUST be forwarded by the 102 proxy if the request is forwarded. 104 3. The Preference-Applied Response Header 106 The Preference-Applied response header MAY be included in the 107 response message to indicate which Prefer request header values were 108 honored by the server and applied to the request. 110 Prefer = "Preference-Applied" ":" 1#preference 112 4. The "return-no-content" Preference 114 The "return-no-content" token indicates that the client prefers that 115 the server not include an entity in the response to a successful 116 request. Typically, such responses would use the 204 No Content 117 status code as defined in Section 10.2.5 of [RFC2616], but other 118 status codes can be used as appropriate. 120 5. The "return-content" Preference 122 The "return-content" token indicates that the client prefers that the 123 server include an entity representing the current state of the 124 resource in the response to a successful request. 126 6. The "return-status" Preference 128 The "return-status" token indicates that the client prefers that the 129 server include an entity describing the status of the request in the 130 response to a successful request. 132 7. IANA Considerations 134 The 'Prefer' request header should be added to the permanent registry 135 (see [RFC3864]). 137 Header field name: Prefer 139 Applicable Protocol: HTTP 141 Status: standard 143 Author/Change controller: IETF 145 Specification document: this specification 147 7.1. The Registry of Preferences 149 This registry is maintained by IANA and initially contains three 150 values: "return-no-content", "return-content" and "return-status". 151 New assignments are subjects to IESG approval, as outlined in 152 [RFC2434]. Requests should be made by email to IANA, which will then 153 forward the request to the IESG, requesting approval. The request 154 should use the following template: 156 o Preference: (A value for the Prefer request header that conforms 157 to the syntax rule given in Section 2) 158 o Description: 159 o Expected server behavior: 160 o Security considerations: 162 8. Security Considerations 164 Specific preferences requested by a client can introduce security 165 considerations and concerns beyond those discussed in [RFC2616]. 166 Implementors must refer to the specifications and descriptions of 167 those preferences to determine the security considerations relevant 168 to each. 170 9. Normative References 172 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 173 Requirement Levels", BCP 14, RFC 2119, March 1997. 175 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 176 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 177 October 1998. 179 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 180 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 181 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 183 [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration 184 Procedures for Message Header Fields", BCP 90, RFC 3864, 185 September 2004. 187 Appendix A. Acknowledgements 189 The author greatfully acknowledges the input from the IETF HTTP 190 mailing list on the development of this document. 192 Appendix B. Changes 194 TODO 196 Appendix C. Notes to RFC Editor 198 The RFC Editor should remove this section and the Changes section. 200 Appendix D. Editorial Notes 202 We need to determine how new preference codes are created/registered 204 Author's Address 206 James M Snell 208 Phone: 209 Email: jasnell@gmail.com 210 URI: http://www.snellspace.com 212 Full Copyright Statement 214 Copyright (C) The IETF Trust (2008). 216 This document is subject to the rights, licenses and restrictions 217 contained in BCP 78, and except as set forth therein, the authors 218 retain all their rights. 220 This document and the information contained herein are provided on an 221 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 222 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 223 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 224 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 225 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 226 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 228 Intellectual Property 230 The IETF takes no position regarding the validity or scope of any 231 Intellectual Property Rights or other rights that might be claimed to 232 pertain to the implementation or use of the technology described in 233 this document or the extent to which any license under such rights 234 might or might not be available; nor does it represent that it has 235 made any independent effort to identify any such rights. Information 236 on the procedures with respect to rights in RFC documents can be 237 found in BCP 78 and BCP 79. 239 Copies of IPR disclosures made to the IETF Secretariat and any 240 assurances of licenses to be made available, or the result of an 241 attempt made to obtain a general license or permission for the use of 242 such proprietary rights by implementers or users of this 243 specification can be obtained from the IETF on-line IPR repository at 244 http://www.ietf.org/ipr. 246 The IETF invites any interested party to bring to its attention any 247 copyrights, patents or patent applications, or other proprietary 248 rights that may cover technology that may be required to implement 249 this standard. Please address the information to the IETF at 250 ietf-ipr@ietf.org. 252 Acknowledgment 254 Funding for the RFC Editor function is provided by the IETF 255 Administrative Support Activity (IASA).