首页 / 缓存 / 简述HTTP协议报文首部缓存机制
简述HTTP协议报文首部缓存机制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了简述HTTP协议报文首部缓存机制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1281字,纯文字阅读大概需要2分钟。
内容图文
http缓存原理与机制强制缓存机制(过期时间机制):
基本原理:在客户端第一次请求服务端时,服务端会将缓存规则信息添加在header中,客户端会通过这些信息判断是否能缓存。若是强制缓存,则header中会有两个字段来标记缓存失效的时间(expires或cache-control),要指出的是在HTTP1.0中,只支持expires,目前的浏览器默认都是HTTP1.1了,基本都支持cache-control。在客户端第一次请求并添加缓存后,以后每次客户端的请求响应数据都是缓存服务器提供的,不会再经由服务端。缓存服务器根据cache-control字段来判断何时更新缓存,是否更新缓存,是否可以使用缓存。
cache-control有下面几个参数:
private,允许客户端使用缓存
max-age,缓存最大失效时长
public,允许客户端和代理使用缓存
no-cache,关闭强制缓存,需要使用对比缓存
no-store,所有内容都不使用缓存
请求报文首部和响应报文首部都有cache-control
对比缓存机制(条件式缓存机制):
基本原理:
1.缓存命中的情况:客户端会向缓存服务器请求获取缓存header标识,客户端获取标识后,会向后端服务器发送header标识规则,若未失效便通知客户端使用缓存服务器缓存的数据(一般状态码为304)。值得注意的是在客户端获取header标识后只会向后端服务器发送header,服务端也只会向客户端返回header。
2.缓存未命中的情况:客户端会向缓存服务器请求获取缓存header标识,客户端获取标识后,会向后端服务器发送header标识规则,若失效便通知客户端不使用缓存服务器缓存的数据(一般状态码为200),并更新缓存。
对比缓存的标识:
last-modified/if-modfied-since:资源最后修改时间戳
etag/if-none-match:资源校验码,可以是类似hash值的算法(优先级高于last-modified)
不管是以上哪一种都是为了比对当前缓存内容和后端服务器最新内容是否一致的。若返回值为304则认为是一致,则直接使用缓存;若返回值是200则认为是不一致,则更新缓存。
缓存方式:
1.代理式缓存:当用户发送请求时,会先经由缓存服务器,若缓存命中便直接返回给客户端,若没命中则由缓存服务器向后端主机发送请求并相应给客户端,再由缓存服务器判断是否缓存响应的内容。
2.旁挂式缓存:当用户发送请求时,会先经由缓存服务器,若缓存命中便直接返回给客户端,若没命中则由客户端自己向后端主机发送请求并相应给客户端,再由客户端判断是否缓存响应的内容。
varnish是一款代理式缓存程序,降低了客户端的要求,客户端不需要判断哪些内容需要缓存哪些不需要缓存,增强了用户体验。现在一般都是使用代理式缓存模型。
varnish的缓存存储机制:
-s
malloc
file
persistent (测试阶段,还未有正式版)
原文:http://blog.51cto.com/13322786/2169173
内容总结
以上是互联网集市为您收集整理的简述HTTP协议报文首部缓存机制全部内容,希望文章能够帮你解决简述HTTP协议报文首部缓存机制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。