安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

浅谈HTTP缓存的用法

11月15日 回头爱投稿
  前言
  缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。
  我们使用HTTP缓存,通过复用缓存资源,减少了客户端等待时间和网络流量,同时也能缓解服务器端的压力。可以显著的提升我们网站和应用的性能。
  虽然HTTP缓存不是必须的,但重用缓存的资源通常是必要的,HTTP缓存是一个web性能优化的重要手段。
  HTTP缓存的类型
  通常HTTP缓存策略分为两种:
  强缓存
  协商缓存。
  从字面意思我们可以很直观的看到它们的差别:
  强缓存即强制直接使用缓存。
  协商缓存就得和服务器协商确认下这个缓存能不能用。
  强缓存
  强缓存不会向服务器发送请求,直接从缓存中读取资源,在chrome控制台的network选项中可以看到该请求返回200的状态码,并且size显示fromdiskcache或
  协商缓存
  协商缓存会先向服务器发送一个请求,服务器会根据这个请求的requestheader的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的responseheader通知浏览器从缓存中读取资源。
  HTTP缓存控制
  在HTTP中,我们可以通过设置响应头以及请求头来控制缓存策略。
  强缓存可以通过设置Expires和CacheControl两种响应头实现。如果同时存在,CacheControl优先级高于Expires。
  Expires
  Expires响应头,它是HTTP1。0的产物。代表该资源的过期时间,其值为一个绝对时间。它告诉浏览器在过期时间之前可以直接从浏览器缓存中存取数据。由于是个绝对时间,客户端与服务端的时间时差或误差等因素可能造成客户端与服务端的时间不一致,将导致缓存命中的误差。如果在CacheControl响应头设置了maxage或者smaxage指令,那么Expires会被忽略。
  Expires:Wed,21Oct201507:28:00GMT
  CacheControl
  CacheControl出现于HTTP1。1。可以通过指定多个指令来实现缓存机制。主要用表示资源缓存的最大有效时间。即在该时间端内,客户端不需要向服务器发送请求。优先级高于Expires。其过期时间指令的值是相对时间,它解决了绝对时间的带来的问题。
  CacheControl:maxage315360000
  CacheControl有很多属性,不同的属性代表的意义也不同。
  可缓存性
  public表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存。
  private表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)
  nocache不使用强缓存,需要与服务器验协商缓存验证。
  nostore缓存不应存储有关客户端请求或服务器响应的任何内容,即不使用任何缓存。
  过期
  maxage缓存存储的最大周期,超过这个周期被认为过期。
  smaxage设置共享缓存。会覆盖maxage和expires,私有缓存会忽略它
  maxstale〔〕客户端愿意接收一个已经过期的资源,可以设置一个可选的秒数,表示响应不能已经过时超过该给定的时间。
  minfresh客户端希望在指定的时间内获取最新的响应
  重新验证和重新加载
  mustrevalidate如页面过期,则去服务器进行获取。
  proxyrevalidate与mustrevalidate作用相同,但是用于共享缓存。
  其他
  onlyifcached不进行网络请求,完全只使用缓存。
  notransform不得对资源进行转换和转变。例如,不得对图像格式进行转换。
  协商缓存可以通过LastModifiedIfModifiedSince和ETagIfNoneMatch这两对Header来控制。
  LastModified、IfModifiedSince
  LastModified与IfModifiedSince的值都是GMT格式的时间字符串,代表的是文件的最后修改时间。
  在服务器在响应请求时,会通过LastModified告诉浏览器资源的最后修改时间。
  浏览器再次请求服务器的时候,请求头会包含LastModified字段,后面跟着在缓存中获得的最后修改时间。
  服务端收到此请求头发现有ifModifiedSince,则与被请求资源的最后修改时间进行对比,如果一致则返回304和响应报文头,浏览器只需要从缓存中获取信息即可。如果已经修改,那么开始传输响应一个整体,服务器返回:200OK
  但是在服务器上经常会出现这种情况,一个资源被修改了,但其实际内容根本没发生改变,会因为LastModified时间匹配不上而返回了整个实体给客户端(即使客户端缓存里有个一模一样的资源)。为了解决这个问题,HTTP1。1推出了Etag。Etag优先级高与LastModified。
  Etag、IfNoneMatch
  Etag都是服务器为每份资源生成的唯一标识,就像一个指纹,资源变化都会导致ETag变化,跟最后修改时间没有关系,ETag可以保证每一个资源是唯一的。
  在浏览器发起请求,浏览器的请求报文头会包含IfNoneMatch字段,其值为上次返回的Etag发送给服务器,服务器接收到次报文后发现IfNoneMatch则与被请求资源的唯一标识进行对比。如果相同说明资源没有修改,则响应返304,浏览器直接从缓存中获取数据信息。如果不同则说明资源被改动过,则响应整个资源内容,返回状态码200。
  总结
  通过前文,我们了解到HTTP缓存主要分:
  强制缓存
  协商缓存。
  强制缓存由CacheControl,Exipres(HTTP1。0)控制。浏览器直接读本地缓存,不会再跟服务器端交互,状态码200。
  协商缓存由LastModifiedIfModifiedSince,EtagIfNoneMatch实现,每次请求需要让服务器判断一下资源是否更新过,从而决定浏览器是否使用缓存,如果是,则返回304,否则重新完整响应。
投诉 评论 转载

产业互联网与消费互联网有哪些差别?自2015年左右开始,产业互联网一直是中国互联网行业内讨论的热点话题。产业互联网是与消费互联网相对的概念,两者均属于互联网经济的概念范畴之内。虽然,时至今日,关于两者的内……互联网早报腾讯回应微视裁员报道均为不实消息齐鲁晚报齐鲁壹点整理腾讯回应微视裁员:报道均为不实消息腾讯回应有关微视裁员的消息称,外界有关于微视将减员、裁撤员工的报道不实。在OVBU(在线视频事业部)进行的新一……东风Honda第十一代思域郑州区域正式上市10月10日,随着我,即世界为主题的第十一代思域发布会在河南艺术中心顺利举行,东风Honda第十一代思域在郑州区域正式上市。秉承爽快的全新开发理念,第十一代思域在标杆之上再进化……JAVA方法定义及调用1。方法概述1。1方法的概念方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集注意:方法必须先创建才可以使用,该过程……100个LinuxShell脚本经典案例给大家分享100个LinuxShell脚本经典案例,另外本篇文档也已经整理成pdf,易失效,请及时保存链接:https:pan。baidu。coms1H8RhYJJWWeoLP……听说过物种灭绝,可是很少听说过新物种诞生,地球上的物种究竟从新物种一直都在酝酿之中,这个过程从未停止过。狭义上讲任何一个物种子群落由于环境变迁、地理隔离而造成基因异化,成功适应并长期繁衍之后都会形成新的物种,北极熊和棕熊的分化就是个例子……浅谈HTTP缓存的用法前言缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。我们使用HTTP缓存,通过复用缓存资源,减少了客户端等待时间和网络流量,同时也能缓解服务器端的压力。可……和智能终端(手机)交朋友,老年生活益处多多时代的车轮滚滚而来,上一波移动互联网浪潮刚过,人工智能的潮头来了,人工智能还没过去,5G巨浪和区块链又打过来了。云计算、大数据恰好印证了这一点:时代日新月异,我们思维必须……联通自主新机官宣价格上极具优势8月19日消息,今天中国联通宣布其自主品牌UMAGIC优畅享的第二款产品,优畅享30e将于本月23日正式发布。该机定位于入门市场,官方在宣布的时候也已经公布了这款手机的外……供应商诉北京盒马店大欺客!四年供货800多万,没赚钱倒被坑68月11日晚间,社交媒体上备注北京爱娜国际美容科技有限公司总经理以马云阿里旗下北京盒马的供应商发文称,从2017年开始与盒马合作,四年多来共计给盒马供货800多万元。但四年来辛……微信又添新功能!网友这次还真的挺实用的微信关怀模式,现在都支持听文字消息了。开启后,点一下聊天中的文字消息就能听到。无论你是安卓手机,还是苹果手机,更新到最新版本就能用。朋友们可以这样开启。打开微……酷派COOL20支持90天换机2年质保,所有端口定制密封设计IT之家5月24日消息今日上午,酷派官方宣布,酷派COOL20支持90天换机2年质保,且每一台酷派COOL20都通过国际标准的10分钟持续喷淋测试,为所有端口定制密封设计。……
长安系中国品牌汽车销量破100万辆!长安汽车公布最新销售数据双十一又至,薇娅直播时代全面到来如果华为现在请倪光南来华为搞芯片。华为会超过芯片巨头英特尔吗胆子越来越大!工信部正式点名,苹果拒不执行京东零售CEO徐雷升任京东集团总裁全球第一!6G通信技术专利主要来源国,中国当定了现在办公室选择智能会议一体机代替传统投影仪的几点原因硬件快讯内存价格可能双位数上涨,DIY寒冬愈演愈烈定下来了!2022年全球开发者大会将于6月6日举办华为Mate40的特殊屏幕的设计,真的符合年轻人风格折叠手机几次换屏,这次翘屏又为哪般?极简美学设计!康夫KF3143负离子电吹风74。9元入手

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利