11. IANA Considerations
This specification establishes several registries for the HTTP/2 protocol. This section describes these registries and their associated registration policies.
11.1. Registration of HTTP/2 Identification Strings
This document creates two registrations for the identification of HTTP/2: the strings "h2" and "h2c".
The "h2" string identifies HTTP/2 when used over TLS, as described in Section 3.3.
The "h2c" string identifies HTTP/2 when used over cleartext TCP, as described in Section 3.2.
These identification strings are registered in the "Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry (established by [TLS-ALPN]).
11.2. Frame Type Registry
This document establishes a registry for HTTP/2 frame type codes. The "HTTP/2 Frame Type" registry manages an 8-bit space. The "HTTP/2 Frame Type" registry operates under the "Expert Review" policy [RFC8126], with reserved values.
Registrations for new entries require the following information:
- Frame Type: A name or label for the frame type.
- Code: The 8-bit code assigned to the frame type.
- Specification: A reference to a specification that includes a description of the frame type.
Entries registered by this document can be found in Table 1.
Table 1: Frame Types
| Frame Type | Code | Section | Reference |
|---|---|---|---|
| DATA | 0x00 | Section 6.1 | RFC 9113 |
| HEADERS | 0x01 | Section 6.2 | RFC 9113 |
| PRIORITY | 0x02 | Section 6.3 | RFC 9113 |
| RST_STREAM | 0x03 | Section 6.4 | RFC 9113 |
| SETTINGS | 0x04 | Section 6.5 | RFC 9113 |
| PUSH_PROMISE | 0x05 | Section 6.6 | RFC 9113 |
| PING | 0x06 | Section 6.7 | RFC 9113 |
| GOAWAY | 0x07 | Section 6.8 | RFC 9113 |
| WINDOW_UPDATE | 0x08 | Section 6.9 | RFC 9113 |
| CONTINUATION | 0x09 | Section 6.10 | RFC 9113 |
11.3. Settings Registry
This document establishes a registry for HTTP/2 settings. The "HTTP/2 Settings" registry manages a 16-bit space. The "HTTP/2 Settings" registry operates under the "Expert Review" policy [RFC8126], with reserved values.
Registrations for new entries require the following information:
- Name: A symbolic name for the setting. Specifying a setting name is optional.
- Code: The 16-bit code assigned to the setting.
- Initial Value: The initial value of the setting.
- Specification: An optional reference to a specification that includes a description of the setting.
Entries registered by this document can be found in Table 2.
Table 2: Settings
| Name | Code | Initial Value | Section | Reference |
|---|---|---|---|---|
| SETTINGS_HEADER_TABLE_SIZE | 0x01 | 4096 | Section 6.5.2 | RFC 9113 |
| SETTINGS_ENABLE_PUSH | 0x02 | 1 | Section 6.5.2 | RFC 9113 |
| SETTINGS_MAX_CONCURRENT_STREAMS | 0x03 | (infinite) | Section 6.5.2 | RFC 9113 |
| SETTINGS_INITIAL_WINDOW_SIZE | 0x04 | 65535 | Section 6.5.2 | RFC 9113 |
| SETTINGS_MAX_FRAME_SIZE | 0x05 | 16384 | Section 6.5.2 | RFC 9113 |
| SETTINGS_MAX_HEADER_LIST_SIZE | 0x06 | (infinite) | Section 6.5.2 | RFC 9113 |
11.4. Error Code Registry
This document establishes a registry for HTTP/2 error codes. The "HTTP/2 Error Code" registry manages a 32-bit space. The "HTTP/2 Error Code" registry operates under the "Expert Review" policy [RFC8126], with reserved values.
Registrations for new entries require the following information:
- Name: The name of the error code. Specifying an error code name is optional.
- Code: The 32-bit error code assigned.
- Description: A brief description of the error condition.
- Specification: An optional reference to a specification that defines the error code.
Entries registered by this document can be found in Table 3.
Table 3: Error Codes
| Name | Code | Description | Section | Reference |
|---|---|---|---|---|
| NO_ERROR | 0x00 | Graceful shutdown | Section 7 | RFC 9113 |
| PROTOCOL_ERROR | 0x01 | Protocol error detected | Section 7 | RFC 9113 |
| INTERNAL_ERROR | 0x02 | Implementation fault | Section 7 | RFC 9113 |
| FLOW_CONTROL_ERROR | 0x03 | Flow control limits exceeded | Section 7 | RFC 9113 |
| SETTINGS_TIMEOUT | 0x04 | Settings not acknowledged | Section 7 | RFC 9113 |
| STREAM_CLOSED | 0x05 | Frame received for closed stream | Section 7 | RFC 9113 |
| FRAME_SIZE_ERROR | 0x06 | Frame size incorrect | Section 7 | RFC 9113 |
| REFUSED_STREAM | 0x07 | Stream not processed | Section 7 | RFC 9113 |
| CANCEL | 0x08 | Stream cancelled | Section 7 | RFC 9113 |
| COMPRESSION_ERROR | 0x09 | Compression state not updated | Section 7 | RFC 9113 |
| CONNECT_ERROR | 0x0a | TCP connection error for CONNECT method | Section 7 | RFC 9113 |
| ENHANCE_YOUR_CALM | 0x0b | Processing capacity exceeded | Section 7 | RFC 9113 |
| INADEQUATE_SECURITY | 0x0c | Negotiated TLS parameters not acceptable | Section 7 | RFC 9113 |
| HTTP_1_1_REQUIRED | 0x0d | Use HTTP/1.1 for the request | Section 7 | RFC 9113 |
11.5. HTTP2-Settings Header Field Registration
This section registers the HTTP2-Settings header field in the "Hypertext Transfer Protocol (HTTP) Field Name Registry" [HTTP].
- Header field name: HTTP2-Settings
- Applicable protocol: http
- Status: standard
- Author/Change controller: IETF
- Specification document(s): Section 3.2.1 of RFC 9113
11.6. PRI Method Registration
This section registers the PRI method in the "HTTP Method Registry" [HTTP].
- Method Name: PRI
- Safe: No
- Idempotent: No
- Specification document(s): Section 3.4 of RFC 9113
11.7. The 421 (Misdirected Request) HTTP Status Code
This section registers the 421 (Misdirected Request) HTTP status code in the "HTTP Status Codes" registry [HTTP].
- Status Code: 421
- Short Description: Misdirected Request
- Specification document(s): Section 9.1.2 of RFC 9113
11.8. The h2c Upgrade Token
This section registers the "h2c" upgrade token in the "HTTP Upgrade Token Registry" [HTTP].
- Name: h2c
- Description: Hypertext Transfer Protocol version 2 (HTTP/2)
- Expected Version Tokens: None
- References: Section 3.2 of RFC 9113
Chapter 11 complete!
References
- [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, June 2017.
- [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, June 2022.
- [TLS-ALPN] Friedl, S., Popov, A., Langley, A., and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, July 2014.