《HTTP权威指南》 – 11.验证码和新鲜度

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

  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权威指南

转载于:https://www.cnblogs.com/duanbiaowu/p/5036815.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品经理必备神器推荐

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台阅读原文工欲善其事,必先利其器,作为最追求极致体验的产品经理群体,手里有一件趁手的法器,工作起来才会有一种享受般的快感,最近…

野火linux底板设计,野火STM32F767套件(底板+核心板)

一、兑换形式1、电子芯吧客注册用户均可通过免费申请与硬件兑换两种方式进行申请试用2、免费申请形式为用户通过分享试用活动至好友,换取申请板卡一次试用资格3、硬件兑换方式为用户捐赠一块闲置板卡至电子芯吧客,换取申请板卡一次试用资格4、免费申请渠…

c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程

c builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程转载于:https://www.cnblogs.com/LittleTiger/p/5039245.html

JS关闭浏览器 (不弹出提示框)

如果网页不是通过脚本程序打开的(window.open()),调用window.close()脚本关闭窗口前,必须先将window.opener对象置为null,否则浏览器(IE7、IE8)会弹出一个确定关闭的对话框。<script…

天大18年c语言离线作业,天大18秋C语言程序设计在线作业一辅导资料.docx-资源下载在线文库www.lddoc.cn...

天大18秋《C语言程序设计》在线作业一辅导资料.docx天大 18 秋C 语言程序设计 在线作业一1、C 2、D 3、D 4、D 5、D 一、单选题共 40 题,100 分1、设有int a 31,0,3,3,4,5,6,7;,则 a21的值是 A3B5C6D4正确答案是C2、设 int a21,b021; 语句 printf“x,dn”,a,b;的输出…

AM335x(TQ335x)学习笔记——GPIO关键驱动移植

或按照S5PV210学习秩序。我们首先解决的关键问题。TQ335x有六个用户按钮,每个上、下、剩下、对、Enter和ESC。我想开始学习S5PV210当同一,写输入子系统驱动器的关键问题要解决,但浏览driver/input/keyboardgpio-keys.c,大体上看下…

程序员偷偷深爱的9个不良编程习惯

新媒体管家下面这9个编码习惯,虽然在编程规则中是被驳斥的,但我们很多人就是会不由自主地使用它们。我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙。同样的,我们都违背过…

emacs c语言 自动补全,Emacs 与 C/C++ 代码自动补全

基于 Emacs 的 company 模式并配合 semantic 文法分析器,实现 Emacs 的 C/C 代码自动补全。关于 Emacs 的代码自动补全代码自动补全的功能,对于使用 Emacs 写代码的程序员而言其重要性不言而喻的,但是搜了一些所谓的 “Emacs 完美的 C 自动补…

linux(fedora) 下dvwa 建筑环境

linux(fedora)下dvwa组态 1.下载httpd,dvwa,mysql,mysqlserver, php-mysql,php 除了dvwa 这是外界进入下一官方网站。该服务通过休息install 安装 yum install httpd, mysql, php-mysql, php 假设出现安装的问题。能够先yum search xxx 2.安装完之后,检查安装的状…

c语言一元二次方程 ii(分支嵌套),C程序设计——求一元二次方程算法

要求:从键盘上输入一元二次方程的三个参数,编程判断并求一元二次方程的实根(a,b,c均为整数)算法分析:一元二次方程是只含有一个未知数,且未知数的最高次数是二次的多项式方程。一元二次方程经过整理都可化成一般形式axbxc0(a≠0)&…

程序员如何优雅度过一生的15个建议

首先,我要说明一下精彩的职业生涯应该是什么样。他们不是这样的一个线性图形,不是每过一个月你就会有对应的成长。(就算是普通的职业生涯也不会这样。你不会每个月都有提升。每个月你都会变的好一点,但是每次有提升都是大幅度的&a…

cocos2d-x游戏开发 跑酷(四) 关联与物理世界

原创。转载注明出处http://blog.csdn.net/dawn_moon/article/details/21451077 前面一节尽管实现了一个跑动的人物,可是他只不过一个精灵在运行一个跑动的帧动画而已。这一节我要实现精灵和物理世界关联。让这个人跟实际的Parkour一样,有实际体积&#x…

kmp算法的c语言,KMP算法 纯C实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我自己写的KMP算法:int nt[256];void get_next1(char* T, int next[], int tlen){int i 0;int j 1;next[0] -1;while( j {if ( T[i] T[j] ){next[j] 0;i;}else{next[j] i;i 0;}j;}}int Index_KMP1(char* S, cha…

MyBatis多条件查询

1.MyBatis多条件查询1.1&#xff1a;使用实体类 将参数封装成对象接口&#xff1a;public List<User> getUserListByUser(User user);Mapper映射文件&#xff1a;<select id"getUserListByUser" resultType"User" parameterType"User"…

android 定位 广播,android - 如何触发广播接收器在GPS开启/关闭? - SO中文参考 - www.soinside.com...

如何触发广播接收器在GPS开启/关闭&#xff1f;问题描述 投票&#xff1a;35回答&#xff1a;5public class BootReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().matches("android.locatio…

sphinx数据文件简析

Sphinx使用的文件包括 “sph”&#xff0c; “spa”&#xff0c; “spi”&#xff0c; “spd”, “spp”&#xff0c; “spm” &#xff0c;还有锁文件&#xff08;.spl&#xff09;。其中sph是系统的配置文件。其它则为索引文件。 l Spi 文件&#xff1a;保存WordId及指向此Wo…

收集一些常用的正则表达式

1 . 校验密码强度密码的强度必须是包含大小写字母和数字的组合&#xff0c;不能使用特殊字符&#xff0c;长度在8-10之间。^(?.*\\d)(?.*[a-z])(?.*[A-Z]).{8,10}$2. 校验中文字符串仅能是中文。^[\\u4e00-\\u9fa5]{0,}$3. 由数字、26个英文字母或下划线组成的字符串^\\w$4.…

C#实现图片的无损压缩

/// <summary>/// 图像缩略图处理/// </summary>/// <param name"bytes">图像源数据</param>/// <param name"compression">压缩质量 1-100</param>/// <param name"thumbWidth">缩略图的宽</para…

部署和调优 1.3 pureftp部署和优化-1

FTP 是 File Transfe Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为 “文传协议” 用于 Internet 上的控制件的双向传输。 可以访问 www.pureftpd.org 官网 切换到下载目录 cd /usr/local/src 下载 wget http://download.pureftpd.org/…

android通知图标变白色,android 7.0通知图标出现白色方块

我使用下面的代码片段在我的Android应用程序中生成通知.private void sendNotification(String contentText, String message) {Intent resultIntent new Intent(this, MainActivity.class);resultIntent.putExtra("clear","clear");resultIntent.setFlag…