Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Timezone for Expires and Last-Modified HTTP Headers

This is a question regarding the timezone specified in the Expires and Last-Modified HTTP headers.

In most of the examples I have seen, I always see GMT as the specified timezone in the HTTP headers.

e.g.

Last-Modified: October 21, 2009 00:00:00 GMT

Expires: October 28, 2009 00:00:00 GMT

Do you know if the browser only understands GMT, or can we specify any other timezone in these HTTP headers ?

e.g.

Last-Modified: October 21, 2009 00:00:00 PDT

Expires: October 28, 2009 00:00:00 PDT

Thanks in advance,

Vivek

like image 320
user198311 Avatar asked Oct 28 '09 17:10

user198311


1 Answers

In this global world of ours, it makes sense to send these Expires and other time-related elements in GMT, and that is indeed what the standard requires.

With regards to the format, HTTP (RFC2616) specifies the Expires header element's format to comply with RFC1123 itself pointing to RFC802.

With regards to the timezone, however Section 3.3.1 explicitly states:

All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), 
without exception. For the purposes of HTTP, GMT is exactly equal to UTC 
(Coordinated Universal Time). This is indicated in the first two formats by
 the inclusion of "GMT" as the three-letter abbreviation for time zone, and
 MUST be assumed when reading the asctime format. HTTP-date is case sensitive 
and MUST NOT include additional LWS beyond that specifically included as SP in
 the grammar.
like image 57
mjv Avatar answered Sep 27 '22 22:09

mjv