Zum Hauptinhalt springen

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. Introduction

    • 1.1. Purpose
    • 1.2. History and Evolution
    • 1.3. Core Semantics
    • 1.4. Specifications Obsoleted by This Document
  • 2. Conformance

    • 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. Identifiers in HTTP

    • 4.1. URI References
    • 4.2. HTTP-Related URI Schemes
    • 4.3. Authoritative Access
  • 5. Fields

    • 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. Message Abstraction

    • 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. Routing HTTP Messages

    • 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. Methods

    • 9.1. Overview
    • 9.2. Common Method Properties
    • 9.3. Method Definitions
  • 10. Message Context

    • 10.1. Request Context Fields
    • 10.2. Response Context Fields
  • 11. HTTP Authentication

    • 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. Content Negotiation

    • 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. Conditional Requests

    • 13.1. Preconditions
    • 13.2. Evaluation of Preconditions
  • 14. Range Requests

    • 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. Status Codes

    • 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. Extending HTTP

    • 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. Security Considerations

    • 17.1. Establishing Authority
    • 17.2. Risks of Intermediaries
    • 17.3-17.16. [Various Security Topics]
  • 18. IANA Considerations

    • 18.1. URI Scheme Registration
    • 18.2. Method Registration
    • 18.3-18.10. [Other Registries]
  • 19. References

    • 19.1. Normative References
    • 19.2. Informative References

Appendices



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.