Caching 为什么默认缓存过期标头是1994年12月1日星期四格林威治标准时间16:00:00?这个日期的意义是什么?

Caching 为什么默认缓存过期标头是1994年12月1日星期四格林威治标准时间16:00:00?这个日期的意义是什么?,caching,http-headers,websphere,Caching,Http Headers,Websphere,当通过WebSphere application server处理某些请求时,它会将cache expires标头设置为Thu,1994年12月1日16:00:00 GMT。这一日期似乎在许多文档中作为expires标头的正确格式日期的示例,但就实际响应而言,它也遍布互联网。这个确切的日期(1994年12月1日星期四格林威治标准时间16:00:00)来自哪里 这就是当你做响应时发生的情况。setHeader(“Expires”,0)这是默认值吗?我认为除了它作为1996年5月的示例“Expire

当通过WebSphere application server处理某些请求时,它会将cache expires标头设置为Thu,1994年12月1日16:00:00 GMT。这一日期似乎在许多文档中作为expires标头的正确格式日期的示例,但就实际响应而言,它也遍布互联网。这个确切的日期(1994年12月1日星期四格林威治标准时间16:00:00)来自哪里


这就是当你做响应时发生的情况。setHeader(“Expires”,0)这是默认值吗?

我认为除了它作为1996年5月的示例“Expires”日期出现之外,没有任何特别的意义。至少有一些文本应该写得更早,实际上RFC1738:统一资源定位器(URL)的日期是1994年12月

在撰写本文时,这将是一个合理的示例值。同样,RFC“1994年11月15日星期二08:12:31 GMT”中的“日期”标题示例在web上也很普遍。这两个值一起构成了一个一致的示例

在RFC 1945中,没有提到特定的默认值,但是它指出

注:欢迎申请 容忍坏的或坏的 Expires标头的错误信息实现。零值 (0)或无效的日期格式应视为等同于 “立即过期”。尽管这些值不是 合法的 对于HTTP/1.0,健壮的实现总是可取的


服务器的实现者将阅读RFC(他们需要阅读才能知道要实现什么),并选择给定的示例日期并使用它。

您可以查看它为什么是这样。它基本上是从技术文档中复制和粘贴的值。

Hmmmm但是为什么WebSphere和其他web服务器的许多响应包含“Expires:Thu,1994年12月1日16:00:00 GMT”。该日期必须由某处的某个东西设置(例如,返回该日期作为过去日期的默认到期日期的方法)。如果你在谷歌上搜索那个日期,你可以看到很多其他人收到的回复中包含“Expires:Thu,01 Dec 1994 16:00:00 GMT”。我不相信这是巧合。@Jake-我不是说这是巧合。WebSphere和其他web服务器的作者将在RFC中看到日期,并使用它点燃“立即过期”。因此,你所说的是真的——它被编码在那些应用程序中。我在答案中添加了一个注释。由于我不知道的原因,HTTP日期格式包含了一周中的某一天,因此计算过去的日期,意味着“不要缓存”,并不是完全不重要的。因此,人们使用规格日期。