提到缓存,一般都会想起redis、memcached等分布式缓存系统。虽然使用这些服务器端缓存速度能提升不少,但其实还是需要客户端下载这部分数据,目前在移动互联网领域,节省流量是很有必要的,因此工作中也就需要加入客户端缓存的相关技术。
怎么使用客户端缓存?
1、用http开头中的last-modified和if-modified-since属性:
客户端请求某个URL的页面时,服务器响应200的同时会下发一个last-modified属性表明请求页面的后更新时间。
客户端再次请求服务器时,根据http协议会在报头添加if-modified-since属性,询问请求页面是否被更新过。
如果服务器端没有更新过请求的页面,则自动响应http 304(not changed)状态码,而响应的Body为空,从而减少了数据传输。
如果服务器更新过了请求的页面,则会将新的数据响应给客户端。
因此,只要客户端将次服务器响应的数据和last-modified在本地存起来,以后的请求在if-modified-since中使用原先存储的时间,如果遇到了响应http 304就直接读本地存储的数据,如果不是304就及时更新本地存储的数据就行了。这样能比每次请求都拉取数据要节省很多流量。
2、关于Etag:
Etag主要为了解决last-modified无法解决的一些问题。
(1)一些文件的内容并不改变,改变修改时间。
(2)文件在1s内修改了N次,if-modified-since能检查到的粒度是秒级的,这种修改无法判断。
(3)服务器不能的得到文件的后修改时间;
与last-modified类似:
先,客户端次请求时,服务器计算好etag并返回给客户端。客户端保存etag信息和响应数据,再次发送请求时发一个If-None-Match头,并包含上次服务器响应的etag值。
其次,服务器判断发送过来的Etag和计算出来的Etag匹配,如果If-None-Match为False,不返回200,返回304,客户端继续使用本地缓存;
如果同时使用if-modified-since和If-None-Match,会在完匹配if-modified-since和If-None-Match之后,服务器才能返回304。
本文标题:互联网HTTP协议的客户端缓存,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于2012-12-13 09:57:32发布于北大青鸟鲁广校区。互联网HTTP协议的客户端缓存。
本文地址:https://m.027hpedu.com/html/2026.html
文章标题:互联网HTTP协议的客户端缓存
上一篇:学网络营销 成为炙手可热的人才
下一篇:网络营销关于软文伪原创的两大技巧
预约将免费领取7天课程体验卡
只为您方便就学
专业老师24小时1对1学习指导
定制专属于你的专属学习方案
微信号:17740513250
微信号:17740513250