Using TLS Application-Layer Protocol Settings (ALPS) in HTTP
draft-vvv-httpbis-alps-00

Document Type Active Internet-Draft (individual)
Last updated 2020-07-06
Stream (None)
Intended RFC status (None)
Formats plain text html xml pdf htmlized (tools) htmlized 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)
HTTP Working Group                                           V. Vasiliev
Internet-Draft                                                    Google
Intended status: Standards Track                             6 July 2020
Expires: 7 January 2021

      Using TLS Application-Layer Protocol Settings (ALPS) in HTTP
                       draft-vvv-httpbis-alps-00

Abstract

   This document describes the use of TLS Application-Level Protocol
   Settings (ALPS) in HTTP/2 and HTTP/3.  Additionally, it defines a set
   of additional HTTP SETTINGS parameters that would normally be
   impractical without ALPS.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the HTTPBIS Working Group
   mailing list (httpbis@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/httpbis/
   (https://mailarchive.ietf.org/arch/browse/httpbis/).

   Source for this draft and an issue tracker can be found at
   https://github.com/vasilvv/httpbis-alps (https://github.com/vasilvv/
   httpbis-alps).

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 7 January 2021.

Vasiliev                 Expires 7 January 2021                 [Page 1]
Internet-Draft                  HTTP ALPS                      July 2020

Copyright Notice

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

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions and Definitions . . . . . . . . . . . . . . . . .   3
   3.  Use of ALPS in HTTP . . . . . . . . . . . . . . . . . . . . .   3
   4.  New Settings  . . . . . . . . . . . . . . . . . . . . . . . .   3
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .   4
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   HTTP/2 defines a mechanism for exchanging the protocol settings using
   a SETTINGS frame ([RFC7540], Section 6.5).  HTTP/3 uses a similar
   mechanism ([HTTP3], Section 7.2.4).  One of the properties of the
   mechanism as defined by both of those protocols is that the parties
   start out without having access to the entirety of the peer's
   settings.  This means that they have to initially operate using the
   default settings, and after receiving the SETTINGS frame, they have
   to find a way to transition from the default to the exchanged
   settings.

   HTTP is commonly used in conjunction with TLS.  TLS performs its own
   handshake that precedes any data being exchanged by the HTTP layer
   itself.  The TLS Application-Level Protocol Settings extension [ALPS]
   allows settings negotiation to be performed within the TLS handshake,
   thus making the result immediately available to the HTTP layer as
   soon as the handshake completes.  This removes the need for
   synchronizing settings, and makes them available earlier than they
   would be otherwise.

Vasiliev                 Expires 7 January 2021                 [Page 2]
Internet-Draft                  HTTP ALPS                      July 2020

   This document defines how ALPS is used with HTTP/2 and HTTP/3, and
   introduces certain new settings that would not be practical without
   ALPS.

2.  Conventions and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
Show full document text