zoukankan      html  css  js  c++  java
  • HTTP协议之响应头Date与Age

        HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是訪问原始server得到的。

    client有一种方法能推断响应是否来自缓存。就是使用Date首部。

    将响应中Date首部的值与当前时间进行比較。假设响应中的日期值比較早。client通常就能够觉得是来自缓存的;client也能够通过Age首部来检測缓存的响应。通过这个首部能够分辨出这条响应的使用期。否则,则觉得是来自原始server中的。

        Date:Date头域表示消息发送的时间,缓存在评估响应的新奇度时要用到,时间的描写叙述格式由RFC822定义。比如。Date: Thu, 11 Jul 2015 15:33:24 GMT。

        Age:当代理server用自己缓存的实体去响应请求时,用该头部表明该实体从产生到如今经过多长时间了。

    下面以请求百度为例,get http://www.baidu.com/,返回200。响应Date从下图能够看到。


    再看还有一个静态资源请求,get http://s1.bdstatic.com/r/www/cache/static/jquery/jquery-1.10.2.min_f2fb5194.js。HTTP响应码为304,Date和Age在下图中能够看到。Date与主请求http://www.baidu.com/一致,未命中代理缓存server(缓存server拿DATE去原始server进行缓存新奇度检查,304表示server对象未改动,缓存再验证命中,缓存仅仅需更新新的首部,假设新奇度检測未命中。则返回200),所以。实际上该资源是从原始server中获得。

    假设该请求Date比当前时间要早,而且假设Date+Age(秒)与主请求http://www.baidu.com/中的Date一致,那么能够觉得从代理缓存server中获取资源,缓存命中。




  • 相关阅读:
    C#关于MSMQ通过HTTP远程发送专有队列消息的问题
    ASP.NET中进行消息处理(MSMQ) 三
    ASP.NET中进行消息处理(MSMQ) 二
    ASP.NET中进行消息处理(MSMQ) 一
    日志插件 log4net 的使用
    在64位windows下使用instsrv.exe和srvany.exe创建windows服务
    Windows下MemCache多端口安装配置
    把页面上DIV元素生成图片
    memcached协议
    没钱买珍珠首饰,能够画一个
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5116174.html
Copyright © 2011-2022 走看看