The PRELOAD Frame Extension
draft-goto-httpbis-preload-frame-01

Document Type Active Internet-Draft (individual)
Last updated 2019-01-09
Stream (None)
Intended RFC status (None)
Formats plain text xml pdf html bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                            H. Goto
Internet-Draft                                                 GREE, inc
Expires: July 12, 2019                                  January 08, 2019

                      The PRELOAD Frame Extension
                  draft-goto-httpbis-preload-frame-01

Abstract

   A server can send application data before a client sends data if they
   are using HTTP/2 with TLS1.3 or HTTP/3.  Indicating loading of
   necessary resources without waiting for the first request from the
   client may improve page loading performance.  This document defines
   the PRELOAD frame, which is a new extension frame that allows the
   server to notify of preload information.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on July 12, 2019.

Copyright Notice

   Copyright (c) 2019 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.

Goto                      Expires July 12, 2019                 [Page 1]
Internet-Draft                PRELOAD Frame                 January 2019

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  PRELOAD Frame Overview  . . . . . . . . . . . . . . . . .   2
   2.  PRELOAD Frame Extension . . . . . . . . . . . . . . . . . . .   3
     2.1.  Using Link Header . . . . . . . . . . . . . . . . . . . .   4
     2.2.  HTTP/2  . . . . . . . . . . . . . . . . . . . . . . . . .   4
       2.2.1.  Frame Format  . . . . . . . . . . . . . . . . . . . .   4
     2.3.  HTTP/3  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     2.4.  Padding . . . . . . . . . . . . . . . . . . . . . . . . .   5
     2.5.  Error Code  . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   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

   A server can send application data before a client sends application
   data if they are using HTTP/2[RFC7540] with TLS1.3[RFC8446] or
   HTTP/3[HTTP3].  But in HTTP/2 [RFC7540] the server only sends a
   SETTINGS frame as the server connection preface.  After that, it can
   send an HTTP response (including a 103 status code [RFC8297]) or
   server push only after receiving a request from the client.

   Indicating loading of necessary resources without waiting for the
   first request from the client may improve page loading performance.
   In order to make effective use of opportunities for the server to
   transmit application data for the first time, this document defines a
   PRELOAD frame; a new extension frame which enables the server to
   notify preload [Preload] information from the server.

1.1.  PRELOAD Frame Overview

   A PRELOAD frame can be sent with the application data that the server
   first transmits after the TLS 1.3 handshake.  The motivation of the
   PRELOAD frame is to make effective use of that transmission
   opportunity.

   The flow is as follows:

Goto                      Expires July 12, 2019                 [Page 2]
Internet-Draft                PRELOAD Frame                 January 2019

      Client                                               Server

      ClientHello             -------->
                                                    ServerHello
                                          {EncryptedExtensions}
                                          {CertificateRequest*}
Show full document text