Hypertext Transfer Protocol Version 2 (HTTP/2)
RFC 7540
Document | Type |
RFC - Proposed Standard
(May 2015; Errata)
Updated by RFC 8740
|
|
---|---|---|---|
Authors | Mike Belshe , Roberto Peon , Martin Thomson | ||
Last updated | 2020-01-21 | ||
Replaces | draft-mbelshe-httpbis-spdy | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized with errata bibtex | ||
Reviews | |||
Stream | WG state | Submitted to IESG for Publication | |
Document shepherd | Mark Nottingham | ||
Shepherd write-up | Show (last changed 2014-12-17) | ||
IESG | IESG state | RFC 7540 (Proposed Standard) | |
Consensus Boilerplate | Yes | ||
Telechat date | |||
Responsible AD | Barry Leiba | ||
Send notices to | (None) | ||
IANA | IANA review state | Version Changed - Review Needed | |
IANA action state | RFC-Ed-Ack |
Internet Engineering Task Force (IETF) M. Belshe Request for Comments: 7540 BitGo Category: Standards Track R. Peon ISSN: 2070-1721 Google, Inc M. Thomson, Ed. Mozilla May 2015 Hypertext Transfer Protocol Version 2 (HTTP/2) Abstract This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients. This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP's existing semantics remain unchanged. Status of This Memo This is an Internet Standards Track document. 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/rfc7540. Belshe, et al. Standards Track [Page 1] RFC 7540 HTTP/2 May 2015 Copyright Notice 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 Provisions Relating to IETF Documents (http://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 ....................................................4 2. HTTP/2 Protocol Overview ........................................5 2.1. Document Organization ......................................6 2.2. Conventions and Terminology ................................6 3. Starting HTTP/2 .................................................7 3.1. HTTP/2 Version Identification ..............................8 3.2. Starting HTTP/2 for "http" URIs ............................8 3.2.1. HTTP2-Settings Header Field .........................9 3.3. Starting HTTP/2 for "https" URIs ..........................10 3.4. Starting HTTP/2 with Prior Knowledge ......................10 3.5. HTTP/2 Connection Preface .................................11 4. HTTP Frames ....................................................12 4.1. Frame Format ..............................................12 4.2. Frame Size ................................................13 4.3. Header Compression and Decompression ......................14 5. Streams and Multiplexing .......................................15 5.1. Stream States .............................................16 5.1.1. Stream Identifiers .................................21 5.1.2. Stream Concurrency .................................22 5.2. Flow Control ..............................................22 5.2.1. Flow-Control Principles ............................23 5.2.2. Appropriate Use of Flow Control ....................24 5.3. Stream Priority ...........................................24 5.3.1. Stream Dependencies ................................25 5.3.2. Dependency Weighting ...............................26 5.3.3. Reprioritization ...................................26 5.3.4. Prioritization State Management ....................27 5.3.5. Default Priorities .................................28 5.4. Error Handling ............................................28 5.4.1. Connection Error Handling ..........................29 5.4.2. Stream Error Handling ..............................29 Belshe, et al. Standards Track [Page 2] RFC 7540 HTTP/2 May 2015Show full document text