2010-10-17 129 views
27

什么是HTTP标头“年龄”?具体来说,什么值为0(Age: "0")是什么意思?“年龄:0”HTTP标头

+21

所以,这是一个女孩或男孩 – Benoit 2010-10-17 16:53:24

+3

@Benoit:这是一个男孩 – BoltClock 2010-10-17 16:54:12

回答

26

见关于Age header field什么HTTP 1.1 specification旨在被用于:

年龄响应头字段传送的时间量的发送者的估计,因为所述响应(或其再验证)在产生原始服务器。

该信息被用于通过中间代理来convey an estimate of how old a stored response is

HTTP/1.1需要原始服务器发送一个Date头,如果可能的话,与每一个响应,给在其处产生的响应的时间(见14.18节)。我们使用术语“date_value”来表示Date报头的值,采用适合算术运算的形式。

HTTP/1.1使用Age响应头来传达从缓存中获取响应消息的估计时间。 Age字段值是缓存对从源服务器生成或重新生效响应以来的时间量的估计值。

此外,年龄头字段旨在仅通过中间缓存一起使用:

的年龄报头字段的响应存在意味着一个响应不是第一手。

这意味着头字段Age: 0的存在意味着接收到的响应是由中间缓存发送的,并且仅为零秒。所以它可能只是在将源文件发送到客户端之前从源服务器获取。

+0

可暗示这个!‘缓存’是另一个代理服务器或应该是另一个代理服务器,如果它是直接响应的原始服务器,则不应该设置年龄响应标头。我在标准中没有看到它,它可能是原始服务器缓存号? – Blub 2014-12-18 10:59:17

+0

@Blub缓存可以是客户端和服务器之间的任何节点,路由上可能有多个代理或根本没有代理,缓存会根据所请求资源的存储表示的年龄设置* Age *头字段值。 – Gumbo 2014-12-18 14:13:45

3

恰好是指定in the protocol

年龄响应头域传送 量的时间的发送者的估计,因为所述响应(或其再验证)是在原始服务器生成 。如果其年龄未超过其新鲜度寿命,则缓存的响应是“新鲜的”。年龄值为 ,按第13.2.3节的规定计算。

 
    Age = "Age" ":" age-value 
    age-value = delta-seconds 

年龄值是非负的十进制整数,较 秒时间。 如果缓存接收到的值大于最大的正数 整数,它可以表示,或者如果其年龄计算中的任何一个计算结果溢出,它必须传输值为 2147483648(2^31)的Age标头。包含缓存的HTTP/1.1服务器必须在自己的缓存中生成的每个响应中包含一个Age标头字段。缓存应该使用至少31位的算术类型。 “

5

”Age标头表示从原始Web服务器上次请求资源以来所请求的资源的年龄的估计值(以秒为单位)。“

”由于网络延迟可能导致计算的年龄不合适,因此根据跳跃之间的估计时间,在返回路径中的每个步骤重新计算年龄。通常根据代理的当前日期和包含在HTTP响应中的日期通用标题之间的差异来计算年龄,而不是依赖于其他中间代理所做的计算。 如果不同步的时钟使此计算结果产生负差,则使用0的年龄。

克里斯·夏夫利特,‘HTTP开发者手册’,第83页。