DevToolsmith

Last-Modified Header

The Last-Modified response header says when the resource was last changed, for revalidation and heuristic caching.

Type
Response header
Category
Caching
Defined in
RFC 9110

Syntax

Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT

How Last-Modified works

The browser sends the date back in If-Modified-Since, and gets 304 Not Modified if nothing changed. It only has one-second precision, so two changes within a second look identical; ETag is more reliable. Without an explicit Cache-Control, browsers use it to guess a cache lifetime.

Examples

HTTP dates are always in GMT
Last-Modified: Wed, 21 Oct 2026 07:28:00 GMT

Check it

curl -sI https://example.com | grep -i '^last-modified:'

Paste a full set of response headers into the HTTP header checker to get every header explained and common mistakes flagged.

Related headers

  • If-Modified-Since: asks for the resource only if it changed after the given date.
  • ETag: gives a version identifier to a response, so caches can ask “has it changed?” cheaply.
  • Expires: gives an absolute date after which the response is stale.

More caching headers

Cache-Control , If-None-Match , Age , Vary .

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.

Frequently asked questions

What does the Last-Modified header do?

The Last-Modified response header says when the resource was last changed, for revalidation and heuristic caching. The browser sends the date back in If-Modified-Since, and gets 304 Not Modified if nothing changed. It only has one-second precision, so two changes within a second look identical; ETag is more reliable. Without an explicit Cache-Control, browsers use it to guess a cache lifetime.

How do I see the Last-Modified header?

Run "curl -sI https://example.com" to print a response’s headers, or open the Network tab in your browser’s dev tools and select the request. Paste the headers into the HTTP header checker on this site to get each one explained.