1001Ferramentas
📅Validators

HTTP Expires Header Validator

Validate the HTTP Expires header (RFC 7234) and find out how long until the content expires. Useful for debugging cache, CDNs and website performance.

Result

Expires: the caching header that predates Cache-Control

Expires states the instant a response stops being fresh. It comes from HTTP/1.0 and was superseded in practice by Cache-Control's max-age directive, which is relative and therefore immune to clock skew. Even so it keeps appearing, and it still applies when the newer header is absent.

Paste the value and the page says whether the date is valid and how long remains or has passed. It also recognises the two special values in circulation: zero and minus one, used to declare the response stale on arrival. Technically any invalid value has that effect — the specification says to treat an unparseable date as already expired.

The precedence rule is the thing to know: when both headers exist, Cache-Control wins and Expires is ignored entirely. That makes for a common situation where someone adjusts Expires and nothing changes, because a Cache-Control was set in another layer — the application server, the reverse proxy or the CDN.

Frequently asked questions

Do I still need to send Expires?
Only to serve very old clients, which is rare today. Sending both causes no harm, since Cache-Control prevails, but it doubles the chance of the two diverging and someone getting lost while debugging. For new content, Cache-Control alone is enough.
Why is an absolute date worse?
Because it depends on the client clock being right. With a fast clock the resource is considered stale early and refetched; with a slow one it keeps being served past expiry. Cache-Control's max-age is relative to receipt and has no such problem.
Are zero and minus one valid?
They are not valid dates, and that is exactly why they work: the specification says to treat an unparseable value as already expired. The usage is widespread enough to be conventional, but the correct and explicit way to say the same thing is Cache-Control's no-cache directive.

Related Tools