一、HTTP响应头、请求头中与缓存控制的相关字段

二、一个页面访问缓存的流程

三、三种刷新的实际操作

四、如何设置缓存

一、HTTP响应头、请求头中与缓存控制的相关字段

  浏览器向服务器发起请求后,服务器的响应头中一般会包含以下与缓存相关的字段:

  1.Expires:过期时间。(HTTP 1.0的字段)

  浏览器再次发起请求的时候会先检查是否超过这个时间,如果没超过则直接从缓存中读取信息。但是如果浏览器的时间和服务器的时间不一致,就会出现问题。

  2.Cache-control:max-age=6000(毫秒)/no-cache/no-store/private/public (HTTP 1.1的字段)

  同时设置Expires和max-age的情况下,使用max-age

  3.Last-Modified:最后一次修改时间。

  4.Etag:被请求变量的实体标记。它的计算是通过服务器端的算法得来的,优先级高于Last-Modified。

  浏览器再次向服务器发起请求,请求头中一般会包含以下与缓存相关的字段:

  1.Cache-control:max-age=0

  2.If-Modified-Since:把响应头中的Last-Modified发至服务端与被请求资源的最后修改时间进行对比

   若最后修改时间大于If-Modified-Since,则表明资源已更改,响应整个资源返回200,否则返回304。

  3.If-None-Match:把响应头中的Etag发至服务端与服务端的实体标记进行对比

   若相同,则表明资源未更改返回304,否则响应整个资源返回200。

  (Etag/If-None-Match的优先级高于Last-Modified/If-Modified-Since)

二、一个页面访问缓存的流程

  

三、三种刷新的实际操作

  1.输入URL,按回车:浏览器发现缓存中有这个资源,就直接从缓存中拿。

  2.F5:即使缓存中有这个资源,也会去服务器确认该资源是否更改。

  3.Ctrl+F5:先把缓存中的资源删了,再去服务器请求完整的资源文件。

四、如何设置缓存

  1.配置apache或ngix服务器(不太了解该方式)

  2.在服务器响应头中动态设置

  3.在前端HTML页面的Meta标签中设置(该方法并不是所有浏览器都支持,且代理服务器不支持该方法,因为代理服务器不会解析HTML页面)

  <meta http-equiv="cache-control" content="max-age=600000" />

  <meta http-equiv="expires" content="..." />

  4.在请求中用setRequestHeader()方法设置请求头,可设置不使用缓存或者更改相应字段(如设置If-None-Modified等)

  (此文为个人对缓存控制的一些梳理,欢迎大家共同交流学习~)

最新文章

  1. [转载]Python 资源大全
  2. passing parameters by value is inefficient when the parameters represent large blocks of data
  3. (转) ASP.NET页面缓存
  4. apache 服务器端口被IIS服务器占用
  5. WINDOWS UPDAET
  6. tomcat 项目部署问题
  7. css3的box-sizing--从此不用担心盒模型的不兼容
  8. MJRefresh 使用注意点
  9. python 基础之字符编码和文件处理
  10. Asp.net mvc 中Action 方法的执行(二)
  11. docker容器的时间同步
  12. Missile Command 导弹指令
  13. Python、进程间通信、进程池、协程
  14. Spark:java api读取hdfs目录下多个文件
  15. OCR技术初识
  16. 创建一个版本库,把文件夹用Git管理起来
  17. [转]mysql如何利用Navicat 导出和导入数据库
  18. java把html标签字符转换成普通字符(反转换成html标签)
  19. NoSQL入门第一天——NoSQL入门与基本概述
  20. springmvc 配置和spring配置?

热门文章

  1. Python&amp;机器学习总结(二)
  2. [USACO06JAN] 牛的舞会 The Cow Prom
  3. python爬取酷狗音乐排行榜
  4. Django-Rest framework中文翻译-Request
  5. 洛谷 1328 生活大爆炸版石头剪刀布(NOIp2014提高组)
  6. Ajax_数据格式_XML
  7. 【Codeforces 348A】Mafia
  8. PM2 &amp; chmod +x
  9. RCC 2014 Warmup (Div. 2) 蛋疼解题总结
  10. 一文教你用 Neo4j 快速构建明星关系图谱