Pragma

The HTTP Pragma request header is a legacy HTTP/1.0 caching directive retained for backward compatibility with clients and caches predating Cache-Control. The specification defines Pragma for requests only. Its behavior in responses was never specified.

Usage

The Pragma header carries the no-cache directive, which is semantically equivalent to Cache-Control: no-cache. When a Cache-Control header is present, the Pragma value is ignored.

The header originated in HTTP/1.0, which had no Cache-Control mechanism. HTTP/1.1 introduced Cache-Control as the replacement, making Pragma obsolete for all practical purposes. Servers and proxies still include Pragma as a defense-in-depth measure to ensure older Caching layers honor the no-cache intent.

The specification defines Pragma solely for backward compatibility. New implementations rely on Cache-Control instead.

Legacy

Pragma is an HTTP/1.0 artifact. Cache-Control provides the same behavior and more. Include Pragma only when communicating with legacy caches.

Directives

no-cache

The no-cache directive instructs caches to revalidate the response with the origin before serving a stored copy. The behavior matches Cache-Control: no-cache.

Pragma: no-cache

Example

A request including both Pragma and Cache-Control to guarantee compatibility across HTTP/1.0 and HTTP/1.1 intermediaries. Modern caches use the Cache-Control value and ignore Pragma.

Cache-Control: no-cache
Pragma: no-cache

A standalone Pragma directive in a request targeting an older proxy server lacking Cache-Control support.

Pragma: no-cache

Takeaway

The Pragma header provides no-cache semantics for HTTP/1.0 caches. Cache-Control supersedes Pragma in all modern HTTP implementations.

See also

Last updated: March 11, 2026