Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is the default cache expires header Thu, 01 Dec 1994 16:00:00 GMT? What is the significance of this date?

When some requests are processed via WebSphere application server, it sets a cache expires header of Thu, 01 Dec 1994 16:00:00 GMT. This date seems to be in a lot of documentation as a example of a properly formed date for an expires header, but it is also all over the internet in regards to actual responses. Where does this exact date (Thu, 01 Dec 1994 16:00:00 GMT) originate from?

Is this what happens when you do response.setHeader("Expires",0) is this the default value?

like image 787
Jake Avatar asked Sep 28 '10 05:09

Jake


1 Answers

I don't think there is any particular significance, beyond its appearing as the example 'expires' date in RFC 1945: Hypertext Transfer Protocol -- HTTP/1.0 dated May 1996. At least some of the text would have been written much earlier, indeed RFC 1738: Uniform Resource Locators (URL) is dated December 1994.

At the time of writing it would have been a reasonable example value. In the same way the 'date' header example in the RFC 'Tue, 15 Nov 1994 08:12:31 GMT', is prevalent in the web. The two values together form a consistent example.

In RFC 1945 there's no mention of a specific default value, however it states

Note: Applications are encouraged to be tolerant of bad or misinformed implementations of the Expires header. A value of zero (0) or an invalid date format should be considered equivalent to an "expires immediately." Although these values are not legitimate for HTTP/1.0, a robust implementation is always desirable.

Implementors of servers will have read the RFC - they'd need to in order to know what to implement - and picked up the example date given, and used it.

like image 134
martin clayton Avatar answered Nov 15 '22 01:11

martin clayton