服务器应当告知客户端能够将内容缓存多长时间,在这个时间内就是新鲜的。服务器可以用这两个首部之一来提供信息:

  1. Expires(过期)
  2. Cache - Control(缓存控制)

Expires首部 规定文档“过期”的具体时间:

语法:Expires :Sun Mar 18 23 :59:59 GMT 2001。

Cache-Control 首部可以用秒数来规定文档最长使用期:从文档离开服务器之后算起的总计时间。

Cache-Control 首部的指令:

  • no - cache 请求:在重新向服务器验证之前,不要返回文档的缓存副本;
  • no - stroe 请求:不要返回文档的缓存副本,不要保存服务器的相应;
  • max - stble请求:文档允许过期,但不能超过指令中指定的过期指;
  • min - fresh请求:文档的使用期不能小于这个指定的时间与它的当前存活时间只和,也就是说:响应必须至少在指定的这段时间内保持新鲜;
  • max - age 请求:缓存中的文档不能超过指定的使用期;
  • no - transform请求:文档在发送之前不允许被转换;
  • only - if - cached请求:只有文档在缓存中才发送,不要联系原始服务器;

  • public 响应:响应可以被任何服务器缓存;
  • private 响应:响应可以被缓存,但只能被单个客户端访问;
  • no - cache 响应:如果该指令伴随一个首部列表的话,那么内容可以被缓存并提供给客户端,但必须先删除所列出的首部。如果没有指定首部,缓存中的副本在没有重新向服务器验证之前不能提供给客户端;
  • no - store 响应:响应不允许被缓存;
  • no - transform 响应:响应在提供给客户端之前不能做任何形式的修改;
  • must - revelidate 响应:响应在提供给客户端之前必须更新向服务器验证;
  • proxy - revelidate 响应:共享的缓存在提供给客户端之前必须重新向服务器验证,私有的缓存可以忽略;
  • max - age 响应:指定文档可以被缓存的时间以及新鲜度的最长时间;
  • s - max - age 响应:指定文档作为共享缓存时的最长使用时间,私有缓存可以忽略;

有条件的请求与验证码:

HTTP为客户端提供了一种方法,仅当资源改变时才请求副本,这种特殊请求成为有条件的请求。

例如:某个缓存服务器可能发送下面的有条件报文给服务器,仅当文件 / hello.html2002年6月29日 之后发生改变的情况下才发送它:

GET / hello.html HTTP / 1.0   If - Modified - Since : Sat : 29 Jan 2002 14:30:00 GMT;
有条件的请求通常是以 `If - ` 开头的首部来实现的。

有条件的请求类型:

If-Modified-Since  Last-Modified
如果在前一条响应的 Last-Modified 首部中说明的时间之后,资源的版本发生变化,就发送副本; If-UnModified-Since Last-Modified
仅在前一条响应的 Last-Modified 首部中说明的时间之后,资源的副本没有变化,才发送副本; If-Match ETag
如果实体的标记与前一次首部中的ETag相同,就发送该资源的副本; If-None-Match ETag
如果实体的标记与前一次响应首部中的ETag不同,就发送该资源的副本;

### 图灵图书 -- HTTP权威指南

豆瓣读书 -- HTTP权威指南

《HTTP权威指南》 – 11.验证码和新鲜度的更多相关文章

  1. Node.js权威指南 (11) - 加密与压缩

    11.1 加密与解密处理 / 295 11.1.1 crypto模块概述 / 295 11.1.2 散列算法 / 296 11.1.3 HMAC算法 / 297 11.1.4 公钥加密 / 29811 ...

  2. javascript权威指南第11章 DOM扩展

    //javascript 权威指南 第三版 第11章 DOM扩展 //取得body元素 var body = document.querySelector("body"); //取 ...

  3. 《http权威指南》读书笔记11

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  4. [置顶] PHP开发实战权威指南-读书总结

    从今年开始,断断续续学习PHP已经有4个月了. 最初,认真学习PHP几天,就弄WordPress搭建了一个个人博客,这也符合技术人的实践理念. 最近,重温PHP开发实战权威指南,做点总结,整理下自己学 ...

  5. 《http权威指南》读书笔记14

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  6. 《http权威指南》读书笔记7

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  7. PHP开发实战权威指南-读书总结

    从今年开始,断断续续学习PHP已经有4个月了.最初,认真学习PHP几天,就弄WordPress搭建了一个个人博客,这也符合技术人的实践理念. 最近,重温PHP开发实战权威指南,做点总结,整理下自己学习 ...

  8. HTTP头部信息和错误代码详解-《HTTP权威指南》

    最近在调试 前后端分离的请求测试,遇到了一个405错误, 无法接受,于是开始了人肉搜索405. 最后 还是HTTP头部信息里的Accept:application/json 这个Accept 导致的, ...

  9. maven权威指南学习笔记(五)—— POM

    1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...

  10. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

随机推荐

  1. Java导出带格式的Excel数据到Word表格

    前言 在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用 ...

  2. 面向制造企业普适性ERP、MES类产品为什么那么难找?

    标准化与个性化之间的矛盾怎么可能通过普适性的ERP.MES系统来解决?为什么难?就跟你找一套适合所有人穿的衣服一样难,事实上这个比找衣服更难!人与人之间高矮胖瘦各不相同.肤色体型各有差异,把同一套衣服 ...

  3. PHP全栈开发(二):MYSQL学习

    昨天进行了CentOS 7 下面的 LAMP搭建 今天学习一下MySQL的一些入门级操作 主要参考PHP中文网的"MySQL最新手册教程" http://www.php.cn/my ...

  4. 源码随想 String -> SoftReference

    源码随想 String -> SoftReference 2021年7月27日 15:38:14 今天实习时看 String的源码,发现其中的一个构造方法 public String(byte ...

  5. C语言小白刷题

    1.有n个评委,他们给出score个分数,请用代码写出平均值,ave代表平均值 2022-10-15 13:17:10 int main() { int n, i =1, score, sum = 0 ...

  6. 安装notepad++ 安装Python Python环境变量的数值。怎样在notepad++上运行Python的代码

    文章目录 1.下载安装一个Python的编辑器notepad++,(我这里有现成的,也可以去网上搜很多) 2.安装python,(我这里有现成的,也可以去网上下载). 3.怎样彻底删除Python,有 ...

  7. 自建流媒体如何录制视频。齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10

    http://x1.eapis.site/ 先打开配置文件\conf\config.php 里边的内容大概如下,第一项是必须要配置的,换成你的网站域名网址.第二项,如果流媒体服务器配置了https证书 ...

  8. 1、小程序Vant_WebApp组件库的安装步骤和简单使用

    Vant 1.小程序对于npm的支持 目前,小程序当中已经支持使用npm安装的第三方包,通过使用这些第三方包,我们可以提高对小程序开发的效率,但是在小程序当中使用所谓的npm包有如下的三个限制 不能支 ...

  9. NLP之基于Transformer的句子翻译

    Transformer 目录 Transformer 1.理论 1.1 Model Structure 1.2 Multi-Head Attention & Scaled Dot-Produc ...

  10. python django搭建一个简易博客的解析(按照文件顺序逐一讲解)

    上次讲解了一下各py文件的内容,但比较乱,所以这次整理了一个顺序版. 源代码请在http://github/Cheng0829/mysite自行下载 mysite: db.sqlite3:数据库文件. ...