欢迎访问北大青鸟鲁广校区~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟鲁广校区

17740513250

三分钟了解北大青鸟

×
  • 数据加载中...

互联网HTTP协议的客户端缓存

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区发布时间:2012-12-13 09:57:32
导读:互联网HTTP协议的客户端缓存。

提到缓存,一般都会想起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协议的客户端缓存#,宏鹏发布于北大青鸟鲁广校区。互联网HTTP协议的客户端缓存。

专业老师指导

专业老师指导

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

培训咨询客服

培训咨询客服

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑。

本文地址:https://www.027hpedu.com/html/2026.html

大家都在看的大家都在看的视频剪辑运营师

热门课程

更多>>
  • 数据加载中...
7天免费试学

7天课程免费试学

实战学习干货限时领取

行业解读+大咖授课+项目实操
10年以上业内强师集结,手把手带你蜕变精英!

点我咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:13125006136

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 验证码 获取验证码 *
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。