zoukankan      html  css  js  c++  java
  • 浏览器缓存机制

    在我们浏览一个页面时发现有异常的情况下,通常考虑是不是浏览器做了缓存,所以我们可以使用Ctrl+F5组合键重新请求一次这个页面,重新请求的页面肯定是最新的页面,因为使用Ctrl+F5组合键刷新页面,浏览器会直接向目标URL发送请求,在HTTP请求头中会增加一些请求头告诉服务器需要获取最新的数据,而不是缓存。

    • Cache-Control/Pragma

    这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器。HTTP Head字段有一些可选值:

    Cache-Control请求字段被各个浏览器支持得较好,而且它的优先级也比较高,它和其他一些请求字段(如Expires)同时出现时,Cache-Control会覆盖其他字段。

    • Expires

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

    • Last-Modified/Etag

    Last-Modified/Etag字段一般用于表示服务器上的资源的最后修改时间,资源可以是静态(静态内容自动加上Last-Modified字段)或者动态的内容(如Servlet提供了一个getLastModified方法用于检查某个动态内容是否已经更新),通过这个最后修改时间可以判断当前请求的资源是否是最新的。

    一般服务端在响应头中返回一个Last-Modified字段,告诉浏览器这个页面的最后修改时间,如Last-Modified:Sat,25 Feb 2012 12:55:04 GMT,浏览器再次请求时在请求头中增加一个If-Modified-Since:Sat,25 Feb 2012 12:55:04 GMT字段,询问当前缓存的页面是否是最新的,如果是最新的就返回304状态码,告诉浏览器是最新的,服务器也不会传输新的数据。

  • 相关阅读:
    Django remedy a security issue refer dos attack
    AppScan8.7的两个细节亮点
    redis的使用
    IDEA使用技巧
    记录tips
    Scala实现wordcount
    Scala学习笔记1
    linux系统下访问window本地数据库
    python国内使用豆瓣下载源和linux常用的命令
    hadoop集群开启和停止执行命令
  • 原文地址:https://www.cnblogs.com/chengchengla1990/p/6678191.html
Copyright © 2011-2022 走看看