首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP Date报头背后的原理是什么?

HTTP Date报头背后的原理是什么?
EN

Stack Overflow用户
提问于 2009-10-23 06:05:45
回答 3查看 19.7K关注 0票数 42

我已经阅读了RFC 2616,但我仍然想知道日期字段是用来做什么的。有一个Last-Modified字段,除了提供元数据外,它实际上还有一个含义,即用于缓存(‘If-Modified- field’)。

但是,在单独的日期标题中将信息加倍又有什么用呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-23 06:20:16

根据the spec,它用于年龄计算。如果您不知道服务器认为现在是什么时间,您将无法计算资源的“年龄”。以下是规范中的相关文本:

年龄计算算法摘要,当缓存收到响应时:

age_value

缓存通过此响应接收的Age:标头的值。

date_value

源站Date:头部的值

request_time

是缓存发出导致此缓存响应的请求的(本地)时间

response_time

是缓存接收响应的(本地)时间

now

是当前(本地)时间

apparent_age = max(0,response_time - date_value);corrected_received_age = max(apparent_age,age_value);response_delay = response_time - request_time;corrected_initial_age = corrected_received_age + response_delay;resident_time = now - response_time;current_age = corrected_initial_age + resident_time;

票数 42
EN

Stack Overflow用户

发布于 2020-08-09 01:08:33

只有为了更好地处理Expires报头,才需要Date

代码语言:javascript
运行
复制
Date: Mon, 26 Mar 2012 12:53:02 GMT
Expires: Wed, 25 Apr 2012 12:53:02 GMT

服务器或客户端的时间可能不正确,因此客户端(浏览器)会尝试calculate max age of the resource freshness。这就是引入Cache-Control标签的原因之一。它使用秒数来过期,而不是固定时间。

我测试了Chrome和Firefox,它们都是没有Date头的响应,所以可以安全地省略它,除非你仍然使用过时的Expires头。如果Date丢失,只需使用assumed the same as client's time。在spec中,头是强制性的,这简直是疯了:日期格式化/解析消耗CPU和网络。

票数 -3
EN

Stack Overflow用户

发布于 2020-01-21 18:43:58

请考虑不使用Date标头,因为它在“禁止标头名称”的列表中。

中的以下描述可能会有所帮助:

禁止的标头名称是不能以编程方式修改的任何HTTP标头的名称;具体地说,是HTTP请求标头名称(与禁止的响应标头名称形成对比)。

禁止修改此类标头,因为用户代理保留对它们的完全控制。以Sec-开头的名称是为创建新的标题而保留的,这些标题不受使用Fetch的API的影响,这些API允许开发人员控制标题,如XMLHttpRequest。

禁止的标头名称以Proxy-或Sec-开头,或者是以下名称之一:

  • Accept-Charset
  • List item
  • Accept-Encoding
  • Access-Control-Request-Headers
  • Access-Control-Request-Method
  • Connection
  • Content-Length
  • Cookie
  • Cookie2
  • Date
  • DNT
  • Expect
  • Host
  • Keep-Alive
  • Origin
  • Proxy-
  • Sec-
  • Referer
  • TE
  • Trailer
  • Transfer-Encoding
  • Upgrade
  • Via
票数 -5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1610254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档