RFC 9110 - HTTP Semantics
Published: June 2022
Status: Internet Standard (STD 97)
Authors: R. Fielding (Ed.), M. Nottingham (Ed.), J. Reschke (Ed.)
Obsoletes: RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7235
Abstract
The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP: architecture, terminology, request methods, response status codes, header fields, and related core concepts.
Importance: This is the latest core HTTP specification (2022), applicable to all versions including HTTP/1.1, HTTP/2, and HTTP/3.
Contents
Main Sections
-
- 1.1. Purpose
- 1.2. History and Evolution
- 1.3. Core Semantics
- 1.4. Specifications Obsoleted by This Document
-
- 2.1. Syntax Notation
- 2.2. Requirements Notation
- 2.3. Length Requirements
- 2.4. Error Handling
- 2.5. Protocol Version
-
3. Terminology and Core Concepts
- 3.1. Resources
- 3.2. Representations
- 3.3. Connections, Clients, and Servers
- 3.4. Messages
- 3.5. User Agents
- 3.6. Origin Server
- 3.7. Intermediaries
- 3.8. Caches
- 3.9. Example Message Exchange
-
- 4.1. URI References
- 4.2. HTTP-Related URI Schemes
- 4.3. Authoritative Access
-
- 5.1. Field Names
- 5.2. Field Lines and Combined Field Value
- 5.3. Field Order
- 5.4. Field Limits
- 5.5. Field Values
- 5.6. Common Rules for Defining Field Values
-
- 6.1. Framing and Completeness
- 6.2. Control Data
- 6.3. Header Fields
- 6.4. Content
- 6.5. Trailer Fields
- 6.6. Message Metadata
-
- 7.1. Determining the Target Resource
- 7.2. Host and :authority
- 7.3. Routing Inbound Requests
- 7.4. Rejecting Misdirected Requests
- 7.5. Response Correlation
- 7.6. Message Forwarding
- 7.7. Message Transformations
- 7.8. Upgrade
-
8. Representation Data and Metadata
- 8.1. Representation Data
- 8.2. Representation Metadata
- 8.3. Content-Type
- 8.4. Content-Encoding
- 8.5. Content-Language
- 8.6. Content-Length
- 8.7. Content-Location
- 8.8. Validator Fields
-
- 9.1. Overview
- 9.2. Common Method Properties
- 9.3. Method Definitions
-
- 10.1. Request Context Fields
- 10.2. Response Context Fields
-
- 11.1. Authentication Scheme
- 11.2. Authentication Parameters
- 11.3. Challenge and Response
- 11.4. Credentials
- 11.5. Establishing a Protection Space (Realm)
- 11.6. Authenticating Users to Origin Servers
- 11.7. Authenticating Clients to Proxies
-
- 12.1. Proactive Negotiation
- 12.2. Reactive Negotiation
- 12.3. Request Content Negotiation
- 12.4. Content Negotiation Field Features
- 12.5. Content Negotiation Fields
-
- 13.1. Preconditions
- 13.2. Evaluation of Preconditions
-
- 14.1. Range Units
- 14.2. Range
- 14.3. Accept-Ranges
- 14.4. Content-Range
- 14.5. Partial PUT
- 14.6. Media Type multipart/byteranges
-
- 15.1. Overview of Status Codes
- 15.2. Informational 1xx
- 15.3. Successful 2xx
- 15.4. Redirection 3xx
- 15.5. Client Error 4xx
- 15.6. Server Error 5xx
-
- 16.1. Method Extensibility
- 16.2. Status Code Extensibility
- 16.3. Field Extensibility
- 16.4. Authentication Scheme Extensibility
- 16.5. Range Unit Extensibility
- 16.6. Content Coding Extensibility
- 16.7. Upgrade Token Registry
-
- 17.1. Establishing Authority
- 17.2. Risks of Intermediaries
- 17.3-17.16. [Various Security Topics]
-
- 18.1. URI Scheme Registration
- 18.2. Method Registration
- 18.3-18.10. [Other Registries]
-
- 19.1. Normative References
- 19.2. Informative References
Appendices
Related Resources
- Official Text: RFC 9110
- Official Page: RFC 9110 DataTracker
- Errata: RFC Editor Errata
Understanding RFC 9110
Major HTTP Specification Reorganization
RFC 9110 is the latest HTTP core specification published in 2022, consolidating and superseding the previous RFC 7230-7235 series:
Old Specifications (2014):
- RFC 7230 - Message Syntax and Routing
- RFC 7231 - Semantics and Content
- RFC 7232 - Conditional Requests
- RFC 7233 - Range Requests
- RFC 7234 - Caching
- RFC 7235 - Authentication
New Specifications (2022):
- RFC 9110 - Semantics (this RFC) ← Core unified specification
- RFC 9111 - Caching
- RFC 9112 - HTTP/1.1
- RFC 9113 - HTTP/2
- RFC 9114 - HTTP/3
Why It Matters
RFC 9110 defines semantics shared across all HTTP versions, regardless of whether HTTP/1.1, HTTP/2, or HTTP/3 is used. This makes the HTTP protocol more unified and easier to understand.
Note: This document is being translated, and chapter content will be progressively completed.