最近在学习HTTP协议中的缓存机制,看到使用期计算时,真的是被《HTTP权威指南》给绕晕了,之后查看了RFC文档中的Age Calculation部分和其他一些资料,整理如下。
一. Age首部字段介绍
当一份Response Message(响应报文)
是从缓存里获取的时候,HTTP/1.1协议要求在Resposne Message
里添加一个Age header filed(Age首部字段)
。这个字段的值表示的是,从这个响应报文在源服务器中产生或者过期验证的那一刻起,到现在为止所经过时间的一个估计值(从名字上其实就看的出来,它表示的是缓存的年龄)。经常和max-age
一起来验证缓存是否过期,即如果这个字段的值比max-age
的值还大,那这份缓存就已经过期了。
Age值从本质上来说,就是从源服务器到接受端的一路上,响应内容在中间各个节点的缓存中呆的时间,加上响应内容在各个相邻节点间传输所用掉的时间。但HTTP协议不会直接利用这一点来计算Age值,因为直接计算的话,就需要在最终的响应报文上加上响应内容在各个中间节点中停留的时间,并且还需要得到各个相邻节点间的传输时间,非常麻烦。