← All headersResponse header

What is an Expires header?

The date/time after which the response is considered stale - largely superseded by Cache-Control's max-age.

Expires sets an absolute point in time after which a website's cached response should be considered stale, and while Cache-Control's max-age directive has largely superseded it (being relative rather than dependent on client and server clocks agreeing), you'll still see both sent together for older-client compatibility. If the two ever disagree, most modern clients defer to Cache-Control, so an Expires date that's badly wrong is usually harmless rather than actively breaking anything.

Common use case

A server sends both Expires and Cache-Control: max-age on a response purely so an ancient HTTP/1.0-only cache in the path, which doesn't understand max-age at all, still has something to work with.

Example

Expires: Mon, 24 Aug 2026 10:32:47 GMT

History

Part of the original HTTP/1.0 specification, RFC 1945 (1996).

Deprecated / legacy status

Superseded in practice by Cache-Control's max-age in HTTP/1.1 (RFC 2068, 1997), since a relative duration doesn't depend on the client and server clocks agreeing - it's not removed from the spec, just consistently overridden when both are present.