zoukankan      html  css  js  c++  java
  • HTTP缓存字段总结

    HTTP控制缓存的字段主要包括Cache-Control/Pragma,Expires,Last-Modified/Etag

    1、Cache-Control/Pragma

        这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器。它可以指定下列可选值:
        1、Public:所有内容都将被缓存,在响应头中设置
        2、Private:内容只缓存在私有缓存中,在响应头中设置
        3、no-cache:所有内容都不会被缓存,在请求头和响应头中设置
        4、no-store:所有内容都不会被缓存在缓存或Internet临时文件中,在响应头中设置
        5、must-revalidation/proxy-revalidation:如果缓存的内容失效,请求必须发送到服务  器/代理以进行重新验证,在请求头中设置
        6、max-age=xxx:缓存的内容将在xxx秒后失效,这个选项只在HTTP1.1中可用,和Last-Modified一起使用时优先级较高,在响应头中设置
    
        Cache-Control请求字段可以被个浏览器很好的支持,而且优先级也比较高,它和其他一些请求字段(如Expires)同时使用时,Cache-Control会覆盖其他字段
    
        Pragma字段的作用和Cache-Control类似,最常用的Pragma:no-cache,他和Cache-cache的作用是一致的。

    2、Expires

        Expires通常的使用格式是Expires:Sat,25 Feb 2012 12:22:17 GMT,后面跟着一个日期和时间,超过这个时间后,缓存的内容将失效,浏览器在发送请求之前检查这个页面的字段,看该页面是否已经过期了,如果过期,就向服务端重新发起请求。

    3、Last-Modified/Etag

        Last-Modified字段一般用于表示一个服务器上的资源的最后修改时间,资源可以是静态资源,也可以是动态内容,通过这个最后修改时间可以判断当前请求的资源是否是最新的。
        一般服务端会在响应头中返回一个Last-Modified字段,告诉浏览器这个页面的最后修改时间,如Last-Modified:Sat, 25 Feb 2012 12:55:04 GMT
    浏览器再次请求时在请求头中增加If-Modified-Since:Sat, 25 Feb 2012 12:55:04 GMT字段,询问当前缓存的页面是否是最新。如果是最新的就返回304,告诉浏览器是最新的,服务器也不会传输最新的数据 Etag字段的作用和LastModified字段作用相同,这个字段的作用是让服务端给每个页面分配一个唯一的编号,然后通过这个编号来区分当前页面是否最新。这种方式比较灵活,但是当后端的服务器有多台时比较难以处理。
  • 相关阅读:
    自信你就赢了
    记移动开发者大会中国(MDCC)
    Android Google Map V2想说爱你不容易
    关于用好Android资料的一些总结和反思
    按钮添加四种点击事件
    Google的可穿戴设备Android Wear抢先看
    跟上潮流,做个微信开发者平台
    我也开始玩儿硬件——树莓派入门
    我也来自己做刷机包
    简单谈谈eclipse下搭建PhoneGap环境来开发Android程序
  • 原文地址:https://www.cnblogs.com/cy0628/p/14918214.html
Copyright © 2011-2022 走看看