Skip to main content

RFC 9111 - HTTP Caching

Published: June 2022
Status: Internet Standard (STD 98)
Authors: R. Fielding (Ed., Adobe), M. Nottingham (Ed., Fastly), J. Reschke (Ed., greenbytes)
Obsoletes: RFC 7234


Abstract

The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.

This document obsoletes RFC 7234.


Table of Contents

  • 1. Introduction

    • 1.1 Requirements Notation
    • 1.2 Syntax Notation
      • 1.2.1 Imported Rules
      • 1.2.2 Delta Seconds
  • 2. Overview of Cache Operation

  • 3. Storing Responses in Caches

    • 3.1 Storing Header and Trailer Fields
    • 3.2 Updating Stored Header Fields
    • 3.3 Storing Incomplete Responses
    • 3.4 Combining Partial Content
    • 3.5 Storing Responses to Authenticated Requests
  • 4. Constructing Responses from Caches

    • 4.1 Calculating Cache Keys with the Vary Header Field
    • 4.2 Freshness
      • 4.2.1 Calculating Freshness Lifetime
      • 4.2.2 Calculating Heuristic Freshness
      • 4.2.3 Calculating Age
      • 4.2.4 Serving Stale Responses
    • 4.3 Validation
      • 4.3.1 Sending a Validation Request
      • 4.3.2 Handling a Received Validation Request
      • 4.3.3 Handling a Validation Response
      • 4.3.4 Freshening Stored Responses upon Validation
      • 4.3.5 Freshening Responses with HEAD
    • 4.4 Invalidating Stored Responses
  • 5. Field Definitions

    • 5.1 Age
    • 5.2 Cache-Control
      • 5.2.1 Request Directives
      • 5.2.2 Response Directives
      • 5.2.3 Extension Directives
      • 5.2.4 Cache Directive Registry
    • 5.3 Expires
    • 5.4 Pragma
    • 5.5 Warning
  • 6. Relationship to Applications and Other Caches

  • 7. Security Considerations

    • 7.1 Cache Poisoning
    • 7.2 Timing Attacks
    • 7.3 Caching of Sensitive Information
  • 8. IANA Considerations

    • 8.1 Field Name Registration
    • 8.2 Cache Directive Registration
    • 8.3 Warn Code Registry
  • 9. References

    • 9.1 Normative References
    • 9.2 Informative References

Appendices



Core Concept: HTTP caching significantly improves performance by storing and reusing previous responses, reducing latency and network overhead, thereby improving user experience and reducing server load.