当前位置: 首页 > news >正文

福州网站建设哪里有室内设计学习

福州网站建设哪里有,室内设计学习,网站建设程序开发过程,邢台建设银行官方网站大家好我是苏麟 , 今天说说HTTP缓存技术 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP缓存技术 HTTP 缓存有哪些实现方式? 对于一些具有重复性的 HTTP 请求#xff0c;比如每次请求得到的数据都一样的#xff0c;我们可以把这对「请求-响…大家好我是苏麟 , 今天说说HTTP缓存技术 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP缓存技术 HTTP 缓存有哪些实现方式? 对于一些具有重复性的 HTTP 请求比如每次请求得到的数据都一样的我们可以把这对「请求-响应」的数据都缓存在本地那么下次就直接读取本地的数据不必在通过网络获取服务器的响应了这样的话HTTP/1.1 的性能肯定肉眼可见的提升。 所以避免发送 HTTP 请求的方法就是通过缓存技术HTTP 设计者早在之前就考虑到了这点因此 HTTP协议的头部有不少是针对缓存的字段。 HTTP 缓存有两种实现方式分别是强制缓存和协商缓存 什么是强制缓存? 强缓存指的是只要浏览器判断缓存没有过期则直接使用浏览器的本地缓存决定是否使用缓存的主动性在于浏览器这边。 如下图中返回的是 200 状态码但在 size 项中标识的是 from disk cache就是使用了强制缓存 强缓存是利用下面这两个 HTTP 响应头部(Response Header)字段实现的它们都用来表示资源在客户端缓存的有效期: Cache-Control 是一个相对时间Expires 是一个绝对时间 如果 HTTP 响应头部同时有 Cache-Control 和 Expires 字段的话Cache-Control的优先级高于 Expires  Cache-control选项更多一些设置更加精细所以建议使用 Cache-Control 来实现强缓存。具体的实现流程如下: 当浏览器第一次请求访问服务器资源时服务器会在返回这个资源的同时在 Response 头部加上Cache-ControlCache-Control 中设置了过期时间大小浏览器再次请求访问服务器中的该资源时会先通过请求资源的时间与 Cache-Control 中设置的过期时间大小来计算出该资源是否过期如果没有则使用该缓存否则重新请求服务器服务器再次收到请求后会再次更新Response 头部的 Cache-Control。 什么是协商缓存? 当我们在浏览器使用开发者工具的时候你可能会看到过某些请求的响应码是 304 这个是告诉浏览器可以使用本地缓存的资源通常这种通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存。 上图就是一个协商缓存的过程所以协商缓存就是与服务端协商之后通过协商结果来判断是否使用本地缓存。 协商缓存可以基于两种头部来实现。 第一种:请求头部中的lf-Modified-Since字段与响应头部中的 Last-Modified 字段实现这两个字段的意思是: 响应头部中的 Last-Modified :标示这个响应资源的最后修改时间请求头部中的 lf-Modified-Since :当资源过期了发现响应头中具有 Last-Modified 声明则再次发起请求的时候带上 Last-Modified 的时间服务器收到请求后发现有 lf-Modified-Since 则与被请求资源的最后修改时间进行对比(Last-Modified)如果最后修改时间较新(大)说明资源又被改过则返回最新资源HTTP 200 OK;如果最后修改时间较旧(小)说明资源无新修改响应HTTP 304 走缓存。 第二种:请求头部中的 lf-None-Match 字段与响应头部中的 ETag 字段这两个字段的意思是 响应头部中 Etag :唯一标识响应资源请求头部中的 lf-None-Match :当资源过期时浏览器发现响应头里有 Etag则再次向服务器发起请求时会将请求头 If-None-Match 值设置为 Etag 的值。服务器收到请求后进行比对如果资源没有变化返回 304如果资源变化了返回 200。 第一种实现方式是基于时间实现的第二种实现方式是基于一个唯一标识实现的相对来说后者可以更加准确地判断文件内容是否被修改避免由于时间篡改导致的不可靠问题。 如果在第一次请求资源的时候服务端返回的 HTTP 响应头部同时有 Etag 和 Last-Modified 字段那么客户端再下一次请求的时候如果带上了 ETag 和 Last-Modified 字段信息给服务端这时 Etag 的优先级更高也就是服务端先会判断 Etag 是否变化了如果 Etag 有变化就不用在判断 Last-Modified 了如果Etag 没有变化然后再看 Last-Modified。 为什么 ETag 的优先级更高?这是因为 ETag 主要能解决 Last-Modified 几个比较难以解决的问题 在没有修改文件内容情况下文件的最后修改时间可能也会改变这会导致客户端认为这文件被改动了从而重新请求可能有些文件是在秒级以内修改的 lf-Modified-Since能检查到的粒度是秒级的使用 Etag就能够保证这种需求下客户端在1秒内能刷新多次有些服务器不能精确获取文件的最后修改时间 注意协商缓存这两个字段都需要配合强制缓存中 Cache-Control 字段来使用只有在未能命中强制缓存的时候才能发起带有协商缓存字段的请求。 下图是强制缓存和协商缓存的工作流程 :  当使用 ETag 字段实现的协商缓存的过程 当浏览器第一次请求访问服务器资源时服务器会在返回这个资源的同时在 Response 头部加上ETag 唯一标识这个唯一标识的值是根据当前请求的资源生成的当浏览器再次请求访问服务器中的该资源时首先会先检查强制缓存是否过期: 如果没有过期则直接使用本地缓存; 如果缓存过期了会在 Request 头部加上 lf-None-Match 字段该字段的值就是 ETag 唯一标识;服务器再次收到请求后会根据请求中的 If-None-Match 值与当前请求的资源生成的唯一标识进行比较: 如果值相等则返回 304 Not Modified不会返回资源; 如果不相等则返回 200 状态码和返回资源并在 Response 头部加上新的 ETag 唯一标识如果浏览器收到 304 的请求响应状态码则会从本地缓存中加载资源否则更新资源。 这期就到这里 , 下期见!
http://www.w-s-a.com/news/400596/

相关文章:

  • 织梦cms 学校网站模板网站建设中的问题
  • 山东济南网站建设公司制作wordpress模板教程视频教程
  • 档案网站的建设怎样更新网站内容
  • 网站开发项目规划房地产趋势与前景
  • 网上网站开发这个百度的网站怎么做的
  • 南昌市建设局官方网站网龙网络公司地址
  • 自助建站平台源码公司网站谁负责做
  • 旅游的网站怎么做网站流量的主要来源有
  • 高新网站设计找哪家网络科技有限公司实习报告
  • 专业网站建设质量推荐网络销售是做网站推广
  • 旅游网站建设模板wordpress最好最全的教程
  • 网站站长在哪登陆后台网站设计一年费用
  • 济南比较好的网站建设公司邢台信息网123
  • 双峰网站建设漳州优化网站建设
  • app和网站开发的成本虚拟主机是啥
  • 想做一个自己设计公司的网站怎么做的销售培训
  • 南昌网站建设模板合作凡客app哪去了
  • 有免费做网站的吗建设互联网站
  • 北京市保障房建设投资中心网站淄博哪个网站做房屋出赁好
  • 如何做网站的优化网站开发怎么收费
  • 网站的关键词怎么选择2345实用查询
  • 免费的制作网站做图剪片文案网站app接单
  • 中国有多少网站有多少域名上海网站建设网页制作邢台
  • 网站 数据报表如何做室内设计联盟官方网站入口
  • 怎样建设网站论文合肥做网站的软件公司
  • 收款后自动发货的网站是怎么做的怎么看网站后台网页尺寸
  • 谷歌seo引擎优化宁波seo关键词
  • 外贸网站建设需要注意什么seo课程
  • 做信息图网站网站建设的软件介绍
  • 网站开发语言数据库有几种魏县审批建设的网站