------------------------------------------------------------ revno: 13790 revision-id: squid3@treenet.co.nz-20150409020717-asle57l7u19pknxh parent: squid3@treenet.co.nz-20150409020340-6941xgfa00qs3lc9 committer: Amos Jeffries branch nick: 3.5 timestamp: Wed 2015-04-08 19:07:17 -0700 message: Docs: RFC 7238 obsoleted by RFC 7538 ------------------------------------------------------------ # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: squid3@treenet.co.nz-20150409020717-asle57l7u19pknxh # target_branch: http://bzr.squid-cache.org/bzr/squid3/3.5 # testament_sha1: f4d919b32260558b5b08356b471c828c579231b2 # timestamp: 2015-04-09 02:16:42 +0000 # source_branch: http://bzr.squid-cache.org/bzr/squid3/3.5 # base_revision_id: squid3@treenet.co.nz-20150409020340-\ # 6941xgfa00qs3lc9 # # Begin patch === modified file 'doc/rfc/1-index.txt' --- doc/rfc/1-index.txt 2014-09-02 01:08:58 +0000 +++ doc/rfc/1-index.txt 2015-04-09 02:07:17 +0000 @@ -197,10 +197,10 @@ rfc7235.txt Hypertext Transfer Protocol (HTTP/1.1): Authentication -rfc7238.txt - The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) - rfc7239.txt Forwarded HTTP Extension Details the Forwarded: header replacement for X-Forwarded-For and other X-Forwarded-* variants + +rfc7538.txt + The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) === renamed file 'doc/rfc/rfc7238.txt' => 'doc/rfc/rfc7538.txt' --- doc/rfc/rfc7238.txt 2014-06-09 01:38:06 +0000 +++ doc/rfc/rfc7538.txt 2015-04-09 02:07:17 +0000 @@ -5,8 +5,9 @@ Internet Engineering Task Force (IETF) J. Reschke -Request for Comments: 7238 greenbytes -Category: Experimental June 2014 +Request for Comments: 7538 greenbytes +Obsoletes: 7238 April 2015 +Category: Standards Track ISSN: 2070-1721 @@ -19,25 +20,21 @@ Status of This Memo - This document is not an Internet Standards Track specification; it is - published for examination, experimental implementation, and - evaluation. + This is an Internet Standards Track document. - This document defines an Experimental Protocol for the Internet - community. This document is a product of the Internet Engineering - Task Force (IETF). It represents the consensus of the IETF - community. It has received public review and has been approved for - publication by the Internet Engineering Steering Group (IESG). Not - all documents approved by the IESG are a candidate for any level of - Internet Standard; see Section 2 of RFC 5741. + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at - http://www.rfc-editor.org/info/rfc7238. + http://www.rfc-editor.org/info/rfc7538. Copyright Notice - Copyright (c) 2014 IETF Trust and the persons identified as the + Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal @@ -55,23 +52,27 @@ -Reschke Experimental [Page 1] + + + +Reschke Standards Track [Page 1] -RFC 7238 HTTP Status Code 308 June 2014 +RFC 7538 HTTP Status Code 308 April 2015 Table of Contents - 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 2 - 3. 308 Permanent Redirect . . . . . . . . . . . . . . . . . . . . 2 - 4. Deployment Considerations . . . . . . . . . . . . . . . . . . . 3 - 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 - 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4 - 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 8.1. Normative References . . . . . . . . . . . . . . . . . . . 5 - 8.2. Informative References . . . . . . . . . . . . . . . . . . 5 + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 2 + 3. 308 Permanent Redirect . . . . . . . . . . . . . . . . . . . 3 + 4. Deployment Considerations . . . . . . . . . . . . . . . . . . 3 + 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 + 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 + 7.2. Informative References . . . . . . . . . . . . . . . . . 5 + Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction @@ -93,9 +94,12 @@ | method from POST to GET | | | +-------------------------------------------+-----------+-----------+ - Section 6.4.7 of [RFC7231] states that HTTP does not define a - permanent variant of status code 307; this specification adds the - status code 308, defining this missing variant (Section 3). + Section 6.4.7 of [RFC7231] states that it does not define a permanent + variant of status code 307; this specification adds the status code + 308, defining this missing variant (Section 3). + + This specification contains no technical changes from the + Experimental RFC 7238, which it obsoletes. 2. Notational Conventions @@ -103,19 +107,20 @@ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. + + + + +Reschke Standards Track [Page 2] + +RFC 7538 HTTP Status Code 308 April 2015 + + 3. 308 Permanent Redirect The 308 (Permanent Redirect) status code indicates that the target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs. - - - -Reschke Experimental [Page 2] - -RFC 7238 HTTP Status Code 308 June 2014 - - Clients with link editing capabilities ought to automatically re-link references to the effective request URI (Section 5.5 of [RFC7230]) to one or more of the new references sent by the server, where possible. @@ -138,25 +143,39 @@ 4. Deployment Considerations Section 6 of [RFC7231] requires recipients to treat unknown 3xx - status codes the same way as status code 300 Multiple Choices + status codes the same way as status code 300 (Multiple Choices) ([RFC7231], Section 6.4.1). Thus, servers will not be able to rely on automatic redirection happening similar to status codes 301, 302, or 307. - Therefore, initial use of status code 308 will be restricted to cases - where the server has sufficient confidence in the client's - understanding the new code or when a fallback to the semantics of - status code 300 is not problematic. Server implementers are advised - not to vary the status code based on characteristics of the request, - such as the User-Agent header field ("User-Agent Sniffing") -- doing - so usually results in code that is both hard to maintain and hard to - debug and would also require special attention to caching (i.e., - setting a "Vary" response header field, as defined in Section 7.1.4 - of [RFC7231]). + Therefore, the use of status code 308 is restricted to cases where + the server has sufficient confidence in the client's understanding + the new code or when a fallback to the semantics of status code 300 + is not problematic. Server implementers are advised not to vary the + status code based on characteristics of the request, such as the + User-Agent header field ("User-Agent Sniffing") -- doing so usually + results in code that is both hard to maintain and hard to debug and + would also require special attention to caching (i.e., setting a + "Vary" response header field, as defined in Section 7.1.4 of + [RFC7231]). + + + + + + + + + +Reschke Standards Track [Page 3] + +RFC 7538 HTTP Status Code 308 April 2015 + Note that many existing HTML-based user agents will emulate a refresh - when encountering an HTML refresh directive ([HTML]). This - can be used as another fallback. For example: + when encountering an HTML refresh directive ([HTML], + Section 4.2.5.3). This can be used as another fallback. For + example: Client request: @@ -164,23 +183,14 @@ Host: example.com - - - -Reschke Experimental [Page 3] - -RFC 7238 HTTP Status Code 308 June 2014 - - Server response: HTTP/1.1 308 Permanent Redirect Content-Type: text/html; charset=UTF-8 Location: http://example.com/new - Content-Length: 454 + Content-Length: 356 - + Permanent Redirect @@ -201,88 +211,88 @@ All security considerations that apply to HTTP redirects apply to the 308 status code as well (see Section 9 of [RFC7231]). + Unsecured communication over the Internet is subject to man-in-the- + middle modification of messages, including changing status codes or + redirect targets. Use of Transport Layer Security (TLS) is one way + to mitigate those attacks. See Section 9 of [RFC7230] for related + attacks on authority and message integrity. + + + + + + + +Reschke Standards Track [Page 4] + +RFC 7538 HTTP Status Code 308 April 2015 + + 6. IANA Considerations - The registration below has been added to the "Hypertext Transfer - Protocol (HTTP) Status Code Registry" (defined in Section 8.2 of - [RFC7231] and located at - ): - - +-------+--------------------+---------------------------------+ - | Value | Description | Reference | - +-------+--------------------+---------------------------------+ - | 308 | Permanent Redirect | Section 3 of this specification | - +-------+--------------------+---------------------------------+ - - - - - - - - - - -Reschke Experimental [Page 4] - -RFC 7238 HTTP Status Code 308 June 2014 - - -7. Acknowledgements - - The definition for the new status code 308 reuses text from the - HTTP/1.1 definitions of status codes 301 and 307. - - Furthermore, thanks to Ben Campbell, Cyrus Daboo, Eran Hammer-Lahav, - Bjoern Hoehrmann, Subramanian Moonesamy, Peter Saint-Andre, and - Robert Sparks for feedback on this document. - -8. References - -8.1. Normative References + The "Hypertext Transfer Protocol (HTTP) Status Code Registry" + (defined in Section 8.2 of [RFC7231] and located at + ) has been updated + to reference this specification. + + +-------+--------------------+----------------------------------+ + | Value | Description | Reference | + +-------+--------------------+----------------------------------+ + | 308 | Permanent Redirect | Section 3 of this specification | + +-------+--------------------+----------------------------------+ + +7. References + +7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate - Requirement Levels", BCP 14, RFC 2119, March 1997. + Requirement Levels", BCP 14, RFC 2119, March 1997, + . [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform - Resource Identifier (URI): Generic Syntax", STD 66, - RFC 3986, January 2005. + Resource Identifier (URI): Generic Syntax", STD 66, RFC + 3986, January 2005, + . [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer - Protocol (HTTP/1.1): Message Syntax and Routing", - RFC 7230, June 2014. + Protocol (HTTP/1.1): Message Syntax and Routing", RFC + 7230, June 2014, . [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, - June 2014. + June 2014, . [RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching", - RFC 7234, June 2014. - -8.2. Informative References - - [HTML] Raggett, D., Le Hors, A., and I. Jacobs, "HTML 4.01 - Specification", W3C Recommendation REC-html401-19991224, - December 1999, - . - - Latest version available at - . - - - - - - - - - - -Reschke Experimental [Page 5] + RFC 7234, June 2014, + . + +7.2. Informative References + + [HTML] Hickson, I., Berjon, R., Faulkner, S., Leithead, T., Doyle + Navara, E., O'Connor, E., and S. Pfeiffer, "HTML5", W3C + Recommendation REC-html5-20141028, October 2014, + . + + Latest version available at . + + + + +Reschke Standards Track [Page 5] -RFC 7238 HTTP Status Code 308 June 2014 - +RFC 7538 HTTP Status Code 308 April 2015 + + +Acknowledgements + + The definition for the new status code 308 reuses text from the + HTTP/1.1 definitions of status codes 301 and 307. + + Furthermore, thanks to Ben Campbell, Cyrus Daboo, Adrian Farrell, + Eran Hammer-Lahav, Bjoern Hoehrmann, Barry Leiba, Subramanian + Moonesamy, Kathleen Moriarty, Peter Saint-Andre, Robert Sparks, and + Roy Fielding for feedback on this document. Author's Address @@ -325,15 +335,5 @@ - - - - - - - - - - -Reschke Experimental [Page 6] +Reschke Standards Track [Page 6] === modified file 'src/http/StatusCode.h' --- src/http/StatusCode.h 2015-01-13 09:13:49 +0000 +++ src/http/StatusCode.h 2015-04-09 02:07:17 +0000 @@ -39,7 +39,7 @@ scNotModified = 304, scUseProxy = 305, scTemporaryRedirect = 307, - scPermanentRedirect = 308, /**< RFC7238 */ + scPermanentRedirect = 308, /**< RFC7538 */ scBadRequest = 400, scUnauthorized = 401, scPaymentRequired = 402,