An HTTP Status Code for Indicating Hints
RFC 8297

Document Type RFC - Experimental (December 2017; No errata)
Last updated 2017-12-19
Stream IETF
Formats plain text pdf html bibtex
Reviews
Stream WG state Submitted to IESG for Publication
Document shepherd Mark Nottingham
Shepherd write-up Show (last changed 2017-06-20)
IESG IESG state RFC 8297 (Experimental)
Consensus Boilerplate Yes
Telechat date
Responsible AD Alexey Melnikov
Send notices to Mark Nottingham <mnot@mnot.net>
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
Internet Engineering Task Force (IETF)                            K. Oku
Request for Comments: 8297                                        Fastly
Category: Experimental                                     December 2017
ISSN: 2070-1721

                An HTTP Status Code for Indicating Hints

Abstract

   This memo introduces an informational HTTP status code that can be
   used to convey hints that help a client make preparations for
   processing the final response.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for examination, experimental implementation, and
   evaluation.

   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 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8297.

Copyright Notice

   Copyright (c) 2017 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
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Oku                           Experimental                      [Page 1]
RFC 8297                       Early Hints                 December 2017

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Notational Conventions  . . . . . . . . . . . . . . . . .   3
   2.  HTTP Status Code 103: Early Hints . . . . . . . . . . . . . .   3
   3.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     5.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     5.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   7
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   It is common for HTTP responses to contain links to external
   resources that need to be fetched prior to their use, for example,
   rendering HTML by a web browser.  Having such links available to the
   client as early as possible helps to minimize perceived latency.

   The "preload" [Preload] link relation can be used to convey such
   links in the Link header field of an HTTP response.  However, it is
   not always possible for an origin server to generate the header block
   of a final response immediately after receiving a request.  For
   example, the origin server might delegate a request to an upstream
   HTTP server running at a distant location, or the status code might
   depend on the result of a database query.

   The dilemma here is that even though it is preferable for an origin
   server to send some header fields as soon as it receives a request,
   it cannot do so until the status code and the full header fields of
   the final HTTP response are determined.

   HTTP/2 [RFC7540] server push can accelerate the delivery of
   resources, but only resources for which the server is authoritative.
   The other limitation of server push is that the response will be
   transmitted regardless of whether the client has the response cached.
   At the cost of spending one extra round trip compared to server push
   in the worst case, delivering Link header fields in a timely fashion
   is more flexible and might consume less bandwidth.

   This memo defines a status code for sending an informational response
   ([RFC7231], Section 6.2) that contains header fields that are likely
   to be included in the final response.  A server can send the
   informational response containing some of the header fields to help
   the client start making preparations for processing the final
   response, and then run time-consuming operations to generate the

Oku                           Experimental                      [Page 2]
RFC 8297                       Early Hints                 December 2017

   final response.  The informational response can also be used by an
Show full document text