117 lines
3.8 KiB
Plaintext
117 lines
3.8 KiB
Plaintext
Internet Engineering Task Force (IETF) M. Bishop, Ed.
|
|
Request for Comments: 9114 Akamai
|
|
Category: Standards Track June 2022
|
|
ISSN: 2070-1721
|
|
|
|
|
|
HTTP/3
|
|
|
|
Abstract
|
|
|
|
The QUIC transport protocol has several features that are desirable
|
|
in a transport for HTTP, such as stream multiplexing, per-stream flow
|
|
control, and low-latency connection establishment. This document
|
|
describes a mapping of HTTP semantics over QUIC. This document also
|
|
identifies HTTP/2 features that are subsumed by QUIC and describes
|
|
how HTTP/2 extensions can be ported to HTTP/3.
|
|
|
|
Status of This Memo
|
|
|
|
This is an Internet Standards Track document.
|
|
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/rfc9114.
|
|
|
|
Table of Contents
|
|
|
|
1. Introduction
|
|
1.1. Prior Versions of HTTP
|
|
1.2. Delegation to QUIC
|
|
2. HTTP/3 Protocol Overview
|
|
2.1. Document Organization
|
|
2.2. Conventions and Terminology
|
|
3. Connection Setup and Management
|
|
3.1. Discovering an HTTP/3 Endpoint
|
|
3.1.1. HTTP Alternative Services
|
|
3.1.2. Other Schemes
|
|
3.2. Connection Establishment
|
|
3.3. Connection Reuse
|
|
4. Expressing HTTP Semantics in HTTP/3
|
|
4.1. HTTP Message Framing
|
|
4.1.1. Request Cancellation and Rejection
|
|
4.1.2. Malformed Requests and Responses
|
|
4.2. HTTP Fields
|
|
4.2.1. Field Compression
|
|
4.2.2. Header Size Constraints
|
|
4.3. HTTP Control Data
|
|
4.3.1. Request Pseudo-Header Fields
|
|
4.3.2. Response Pseudo-Header Fields
|
|
4.4. The CONNECT Method
|
|
4.5. HTTP Upgrade
|
|
4.6. Server Push
|
|
5. Connection Closure
|
|
5.1. Idle Connections
|
|
5.2. Connection Shutdown
|
|
5.3. Immediate Application Closure
|
|
5.4. Transport Closure
|
|
6. Stream Mapping and Usage
|
|
6.1. Bidirectional Streams
|
|
6.2. Unidirectional Streams
|
|
6.2.1. Control Streams
|
|
6.2.2. Push Streams
|
|
6.2.3. Reserved Stream Types
|
|
7. HTTP Framing Layer
|
|
7.1. Frame Layout
|
|
7.2. Frame Definitions
|
|
7.2.1. DATA
|
|
7.2.2. HEADERS
|
|
7.2.3. CANCEL_PUSH
|
|
7.2.4. SETTINGS
|
|
7.2.5. PUSH_PROMISE
|
|
7.2.6. GOAWAY
|
|
7.2.7. MAX_PUSH_ID
|
|
7.2.8. Reserved Frame Types
|
|
8. Error Handling
|
|
8.1. HTTP/3 Error Codes
|
|
9. Extensions to HTTP/3
|
|
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. Padding and Traffic Analysis
|
|
10.8. Frame Parsing
|
|
10.9. Early Data
|
|
10.10. Migration
|
|
10.11. Privacy Considerations
|
|
11. IANA Considerations
|
|
11.1. Registration of HTTP/3 Identification String
|
|
11.2. New Registries
|
|
11.2.1. Frame Types
|
|
11.2.2. Settings Parameters
|
|
11.2.3. Error Codes
|
|
11.2.4. Stream Types
|
|
12. References
|
|
12.1. Normative References
|
|
12.2. Informative References
|
|
Appendix A. Considerations for Transitioning from HTTP/2
|
|
A.1. Streams
|
|
A.2. HTTP Frame Types
|
|
A.3. HTTP/2 SETTINGS Parameters
|
|
A.4. HTTP/2 Error Codes
|
|
Acknowledgments
|
|
Index
|
|
Author's Address
|
|
|
|
[NOTE: This file contains the header, abstract, and table of contents
|
|
of RFC 9114. The full specification text is available at:
|
|
https://www.rfc-editor.org/rfc/rfc9114
|
|
https://www.rfc-editor.org/rfc/rfc9114.txt (text)
|
|
https://www.rfc-editor.org/rfc/rfc9114.pdf (PDF)
|
|
|
|
Full document: 57 pages, June 2022
|
|
Author: Mike Bishop (Akamai), Editor
|
|
DOI: 10.17487/RFC9114]
|