]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Docs: RFC 7238 obsoleted by RFC 7538
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 8 Apr 2015 03:00:14 +0000 (20:00 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 8 Apr 2015 03:00:14 +0000 (20:00 -0700)
doc/rfc/1-index.txt
doc/rfc/rfc7538.txt [moved from doc/rfc/rfc7238.txt with 57% similarity]
src/http/StatusCode.h

index f345938885323ecdac5b56ce8d991b03e1ed0015..877c67a6461891070480d9bd4010fa8e565b968a 100644 (file)
@@ -197,10 +197,10 @@ rfc7234.txt
 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)
similarity index 57%
rename from doc/rfc/rfc7238.txt
rename to doc/rfc/rfc7538.txt
index 3ec2ce82d0524ed4caa610f0f485bddfa9ae200d..730927ee65a88edfa946408bb6fa3d649f7e791a 100644 (file)
@@ -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 @@ Abstract
 
 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 @@ Copyright Notice
 
 
 
-Reschke                       Experimental                      [Page 1]
+
+
+
+Reschke                      Standards Track                    [Page 1]
 \f
-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 @@ Table of Contents
    | 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 @@ Table of Contents
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
    document are to be interpreted as described in [RFC2119].
 
-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]
+Reschke                      Standards Track                    [Page 2]
 \f
-RFC 7238                  HTTP Status Code 308                 June 2014
+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.
    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,38 +143,44 @@ RFC 7238                  HTTP Status Code 308                 June 2014
 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]).
 
-   Note that many existing HTML-based user agents will emulate a refresh
-   when encountering an HTML <meta> refresh directive ([HTML]).  This
-   can be used as another fallback.  For example:
 
-   Client request:
 
-     GET / HTTP/1.1
-     Host: example.com
 
 
 
 
 
-Reschke                       Experimental                      [Page 3]
+
+Reschke                      Standards Track                    [Page 3]
 \f
-RFC 7238                  HTTP Status Code 308                 June 2014
+RFC 7538                  HTTP Status Code 308                April 2015
+
+
+   Note that many existing HTML-based user agents will emulate a refresh
+   when encountering an HTML <meta> refresh directive ([HTML],
+   Section 4.2.5.3).  This can be used as another fallback.  For
+   example:
+
+   Client request:
+
+     GET / HTTP/1.1
+     Host: example.com
 
 
    Server response:
@@ -177,10 +188,9 @@ RFC 7238                  HTTP Status Code 308                 June 2014
      HTTP/1.1 308 Permanent Redirect
      Content-Type: text/html; charset=UTF-8
      Location: http://example.com/new
-     Content-Length: 454
+     Content-Length: 356
 
-     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-                           "http://www.w3.org/TR/html4/strict.dtd">
+     <!DOCTYPE HTML>
      <html>
         <head>
            <title>Permanent Redirect</title>
@@ -201,19 +211,11 @@ RFC 7238                  HTTP Status Code 308                 June 2014
    All security considerations that apply to HTTP redirects apply to the
    308 status code as well (see Section 9 of [RFC7231]).
 
-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
-   <http://www.iana.org/assignments/http-status-codes>):
-
-   +-------+--------------------+---------------------------------+
-   | Value | Description        | Reference                       |
-   +-------+--------------------+---------------------------------+
-   | 308   | Permanent Redirect | Section 3 of this specification |
-   +-------+--------------------+---------------------------------+
-
+   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.
 
 
 
@@ -221,68 +223,76 @@ RFC 7238                  HTTP Status Code 308                 June 2014
 
 
 
-
-
-Reschke                       Experimental                      [Page 4]
+Reschke                      Standards Track                    [Page 4]
 \f
-RFC 7238                  HTTP Status Code 308                 June 2014
+RFC 7538                  HTTP Status Code 308                April 2015
 
 
-7.  Acknowledgements
+6.  IANA Considerations
 
-   The definition for the new status code 308 reuses text from the
-   HTTP/1.1 definitions of status codes 301 and 307.
+   The "Hypertext Transfer Protocol (HTTP) Status Code Registry"
+   (defined in Section 8.2 of [RFC7231] and located at
+   <http://www.iana.org/assignments/http-status-codes>) has been updated
+   to reference this specification.
 
-   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.
+   +-------+--------------------+----------------------------------+
+   | Value | Description        | Reference                        |
+   +-------+--------------------+----------------------------------+
+   | 308   | Permanent Redirect | Section 3 of this specification  |
+   +-------+--------------------+----------------------------------+
 
-8.  References
+7.  References
 
-8.1.  Normative 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,
+              <http://www.rfc-editor.org/info/rfc2119>.
 
    [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,
+              <http://www.rfc-editor.org/info/rfc3986>.
 
    [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, <http://www.rfc-editor.org/info/rfc7230>.
 
    [RFC7231]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
               Protocol (HTTP/1.1): Semantics and Content", RFC 7231,
-              June 2014.
+              June 2014, <http://www.rfc-editor.org/info/rfc7231>.
 
    [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,
-              <http://www.w3.org/TR/1999/REC-html401-19991224>.
-
-              Latest version available at
-              <http://www.w3.org/TR/html401>.
+              RFC 7234, June 2014,
+              <http://www.rfc-editor.org/info/rfc7234>.
 
+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,
+              <http://www.w3.org/TR/2014/REC-html5-20141028/>.
 
+              Latest version available at <http://www.w3.org/TR/html5/>.
 
 
 
 
+Reschke                      Standards Track                    [Page 5]
+\f
+RFC 7538                  HTTP Status Code 308                April 2015
 
 
+Acknowledgements
 
-Reschke                       Experimental                      [Page 5]
-\f
-RFC 7238                  HTTP Status Code 308                 June 2014
+   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 @@ Author's Address
 
 
 
-
-
-
-
-
-
-
-
-
-
-Reschke                       Experimental                      [Page 6]
+Reschke                      Standards Track                    [Page 6]
 \f
index 7a662dafccaaf4dce9be7f5813826f39aa99f5dd..0bedf227dab1ecc1dd5fe0b82619a6a753a3eefd 100644 (file)
@@ -39,7 +39,7 @@ typedef enum {
     scNotModified = 304,
     scUseProxy = 305,
     scTemporaryRedirect = 307,
-    scPermanentRedirect = 308, /**< RFC7238 */
+    scPermanentRedirect = 308, /**< RFC7538 */
     scBadRequest = 400,
     scUnauthorized = 401,
     scPaymentRequired = 402,