什么是HTTP标题“年龄”?具体来说,0(Age: "0"
)的值是什么意思?
答案 0 :(得分:27)
请参阅HTTP 1.1 specification了解Age header field的用途:
Age response-header字段表示发件人对自原始服务器生成响应(或其重新验证)以来的时间量的估计。
此信息由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 标头字段仅供中间缓存使用:
响应中存在Age标头字段意味着响应不是第一手的。
这意味着标头字段Age: 0
的存在意味着接收到的响应是由中间缓存发送的,并且只有零秒。因此,在将其发送给客户端之前,它可能只是从原始服务器获取的。
答案 1 :(得分:5)
“Age标头表示自上次从原始Web服务器请求以来所请求资源的年龄的估计值,以秒为单位。”
“由于网络延迟会导致计算出不正确的低年龄,因此根据跳跃之间的估计时间,在返回路径的每一步重新计算年龄。而不是依赖于其他中间代理的计算,年龄将通常计算为代理的当前日期与HTTP响应中包含的日期通用标头之间的差异。如果非同步时钟使得此计算导致负差异,则使用0岁。“< / p>
Chris Shiflett,“HTTP开发人员手册”,第83页。
答案 2 :(得分:3)
恰好指定in the protocol:
Age response-header字段传达发件人的估计值 自响应(或其重新验证)以来的时间量 在原始服务器上生成。如果缓存响应是“新鲜的” 它的年龄不超过其新鲜寿命。年龄值是 按照第13.2.3节的规定计算。
Age = "Age" ":" age-value age-value = delta-seconds年龄值是非负十进制整数,表示时间 秒。 如果缓存接收的值大于最大值 它可以表示的整数,或者它的任何年龄计算 溢出,它必须传输一个值为的Age标头 2147483648(2 ^ 31)。必须包含缓存的HTTP / 1.1服务器 在其生成的每个响应中包含Age头字段 自己的缓存。缓存应该使用至少31的算术类型 比特范围。