RFC 9113 - HTTP/2
Published: June 2022
Status: Standards Track
Authors: M. Thomson (Mozilla), C. Benfield (Apple Inc.)
Obsoletes: RFC 7540, RFC 8740
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 latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.
This document obsoletes RFCs 7540 and 8740.
Table of Contents
- 1. Introduction
- 2. HTTP/2 Protocol Overview
- 2.1 Document Organization
- 2.2 Conventions and Terminology
- 3. Starting HTTP/2
- 3.1 HTTP/2 Version Identification
- 3.2 Starting HTTP/2 for "https" URIs
- 3.3 Starting HTTP/2 with Prior Knowledge
- 3.4 HTTP/2 Connection Preface
- 4. HTTP Frames
- 4.1 Frame Format
- 4.2 Frame Size
- 4.3 Field Section Compression and Decompression
- 5. Streams and Multiplexing
- 5.1 Stream States
- 5.2 Flow Control
- 5.3 Prioritization
- 5.4 Error Handling
- 5.5 Extending HTTP/2
- 6. Frame Definitions
- 6.1 DATA
- 6.2 HEADERS
- 6.3 PRIORITY
- 6.4 RST_STREAM
- 6.5 SETTINGS
- 6.6 PUSH_PROMISE
- 6.7 PING
- 6.8 GOAWAY
- 6.9 WINDOW_UPDATE
- 6.10 CONTINUATION
- 7. Error Codes
- 8. Expressing HTTP Semantics in HTTP/2
- 8.1 HTTP Message Framing
- 8.2 HTTP Fields
- 8.3 HTTP Control Data
- 8.4 Server Push
- 8.5 The CONNECT Method
- 8.6 The Upgrade Header Field
- 8.7 Request Reliability
- 8.8 Examples
- 9. HTTP/2 Connections
- 9.1 Connection Management
- 9.2 Use of TLS Features
- 10. Security Considerations
- 10.1 Server Authority
- 10.2 Cross-Protocol Attacks
- 10.3 Intermediary Encapsulation Attacks
- 10.4 Cacheability of Pushed Responses
- 10.5 Denial-of-Service Considerations
- 10.6 Use of Compression
- 10.7 Use of Padding
- 10.8 Privacy Considerations
- 10.9 Remote Timing Attacks
- 11. IANA Considerations
- 11.1 HTTP2-Settings Header Field Registration
- 11.2 The h2c Upgrade Token
- 12. References
- 12.1 Normative References
- 12.2 Informative References
Appendices
Related Resources
- Official Text: RFC 9113
- Official Page: RFC 9113 DataTracker
- Errata: RFC Editor Errata