HTTP caching is governed primarily by the Cache-Control response header (RFC 9111). The most commonly seen directives are:
max-age=N — response is fresh for N seconds.s-maxage=N — same, but only for shared (CDN/proxy) caches.no-cache — cache may be stored, but must revalidate before reuse.no-store — do not cache at all.When a stored response becomes stale, the cache sends a conditional request using If-None-Match (with an ETag) or If-Modified-Since.
See RFC 9111 for the normative spec.