《HTTP权威指南》 – 11.验证码和新鲜度
2015-12-10 17:58
609 查看
服务器应当告知客户端能够将内容缓存多长时间,在这个时间内就是新鲜的。服务器可以用这两个首部之一来提供信息:
Expires(过期)
Cache - Control(缓存控制)
Expires首部 规定文档“过期”的具体时间:
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 响应:指定文档作为共享缓存时的最长使用时间,私有缓存可以忽略;
例如:某个缓存服务器可能发送下面的有条件报文给服务器,仅当文件
Expires(过期)
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.html从
2002年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权威指南
相关文章推荐
- [开源与项目]JWFD科技树分支网络-GPU编程研究课题
- socket和http区别
- Splinter:测试网络应用的工具
- 《HTTP权威指南》– 10.安全HTTP
- 【计算机网络】:考完所感,送给下届学妹学弟
- https://msdn.microsoft.com/en-us/library/ff648951.aspx
- AngularJS中service,factory,provider的区别(转载:http://my.oschina.net/tanweijie/blog/295067)
- rpc rmi http
- PHP CURL访问HTTPS使用详解
- TCP/IP协议原理【转载】
- CentOS 7最小安装(文字界面)中设置连接网络
- Postman-Http请求模拟工具
- 《HTTP权威指南》– 9.识别和认证
- HTTP
- 使用socket发送http请求(GET/POST)
- 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是
- Lucene 简单手记http://www.cnblogs.com/hoojo/archive/2012/09/05/2671678.html
- Java程序避开SSL证书问题访问https网站
- 快速Android开发系列网络篇之Retrofit .
- 卷积神经网络CNN