• http 304


    第一种方式:(Last-Modified)

    1 客户端,第一次请求A页面

    2 服务器会在响应头中加一个字段:Last-Modified,用于标示服务器返回的文件最后修改时间

    3 客户端,第二次请求A页面,这时候,客户端在请求头中就有一个字段:If-Modify-Since

    4 服务器收到请求后,用自动获取该文件的Last-Modified和If-Modify-Since进行对比,如果文件没改变,则返回304

    第二种方式:(ETag)

    ETag则必须由开发人员自己来和"If-None-Match"进行比较判断

    ETag和Last-Modified用法上的区别是:ETag必须由开发人员来使用,而Last-Modified服务器会自动判断。也就是说服务器自己能够获取文件的"Last-Modified"并和"If-Modify-Since"进行对比,进而决定发送什么样的响应。而ETag则必须由开发人员自己来和"If-None-Match"进行比较判断。
         加上ETag一个用途是,假如文件被编辑了,但实际上内容并没有变化,此时可以指定ETag的值不变,这样它和浏览器发送过来的"If-None-Match"的值就相等了,进而可以指定响应为304,即未发生改变。如果不加ETag这个功能,则浏览器会发送200响应。

    其他:

    Cache-Control  no-cache — 强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验。这对于需要确认认证应用很有用(可以和public结合使用),或者严格要求使用最新数据 的应用(不惜牺牲使用缓存的所有好处) 
    Pragma 当"no-cache"出现在请求消息中时,应用程序应当向原始服务器推送此请求,即使它已 
    经在上次请求时已经缓存了一份拷贝。这样将保证客户端能接收到最权威的回应。它也用来 
    在客户端发现其缓存中拷贝不可用或过期时,对拷贝进行强制刷新。 
    cache-control 
    max-age>0 时 直接从游览器缓存中 提取 
    max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改 
    有的话 返回200 ,无的话 返回304. 

    参考:

    http://www.educity.cn/wenda/123218.html

    http://www.cnblogs.com/mofish/archive/2011/09/03/2165467.html

    http://kb.cnblogs.com/page/130970/

    http://blog.csdn.net/ysdaniel/article/details/7969766

  • 相关阅读:
    C# TCP/IP 服务端 和 客户端
    (trigger)触发器的定义和作用
    AD账号登陆验证
    DES加密&解密字符串
    机器视觉(工业视觉)需要什么技能
    机器视觉对位贴合
    Halcon blob分析基本处理步骤
    cross_val_score 交叉验证与 K折交叉验证,嗯都是抄来的,自己作个参考
    50道SQL练习题及答案与详细分析(MySQL)
    MySQL8.0 ROW_NUMBER、RANK、DENSE_RANK窗口函数 分组排序排名
  • 原文地址:https://www.cnblogs.com/simonbaker/p/4563507.html
Copyright © 2020-2023  润新知