网站内容策略(网页缓存包含客户端浏览器缓存和服务器缓存,这是服务器性能优化)

优采云 发布时间: 2021-10-16 02:21

  网站内容策略(网页缓存包含客户端浏览器缓存和服务器缓存,这是服务器性能优化)

  我网站的速度一向是比较引以为豪的。根据alexa的统计,我的网站平均打开时间为0.274秒,全球98%的网站速度都比我的网站慢。

  平均加载时间

  非常快(0.274 秒),98% 的网站速度较慢。

  虽然这更多归功于更好的服务器性能和相对充足的带宽,但它也有助于网站服务器优化。

  今天想说一下启用网页缓存的服务器性能优化策略。

  网页缓存包括客户端浏览器缓存和服务器缓存。这里是服务器端网页的缓存,这是优化服务器性能的策略之一。由于本站使用的是IIS服务器,因此本文不涉及Apache、lighttpd等。

  为什么要启用服务器缓存?

  有人做了生动的解释。缓存就像一个大盒子。以页面缓存为例,当第一个客户端访问一个有缓存机制的页面时,iis会记录页面地址和内容,放到大框里。后续客户访问页面时,iis直接根据地址调出页面内容显示在客户端。这样减少了访问服务器的操作,提高了效率。

  动态内容页面也可以缓存

  以前以为只能缓存静态内容页面,但是经过实验,动态内容页面也可以缓存。比如在webkaka的网站速度诊断首页,就有最近的测试列表。10个URL是实时从测试列表中读取的,但是因为使用了1小时的网页缓存,也就是说这个页面的内容,它只是每小时变化一次,而不是读取所有的数据时间。

  动态页面也被缓存,这将大大减少对服务器的读写操作,保护服务器。同时,它会大大降低服务器内存和CPU使用率,从而提高服务器的性能。

  IIS 设置网页内容的过期时间

  在谷歌网站速度优化建议中,有一项“使用浏览器缓存”技术。这其实并不是什么高深的技术,我们可以很方便的在IIS中进行设置。

  如下所示

  

  1. 在 IIS 管理器中,单击“HTTP 标头”选项卡。

  2. 选中“启用内容过期”复选框。

  3. 点击“立即过期”、“在此时间段后过期”或“过期时间”,然后在相应的框中输入所需的过期信息。

  4. 单击“确定”。

  如何检查你的 网站 是否启用了缓存?

  您可以到卡卡网的网站速度诊断平台,对您的网站进行诊断,然后点击“性能优化”选项卡,再点击“使用浏览器缓存”项进行查找。

  

  相关信息

  当我们查看网页的头部信息时,经常会看到这些参数:Expires、Cache-Control、Last-Modified、ETag,它们是RFC 2616(HTTP/1.1)协议和web page 缓存相关的几个字段,前两个用来控制缓存的过期日期,后两个用来验证网页的有效性,需要注意的是HTTP/1.0具有较弱的缓存控制机制:Pragma,使用 HTTP/1.0 的缓存将忽略 Expires 和 Cache-Control 标头。

  过期

  Expires 字段声明浏览器不再缓存网页或 URL 地址的时间。一旦过了这个时间,浏览器应该联系原创服务器。RFC 告诉我们:“因为推断的过期时间可能会降低语义透明度,所以应该谨慎使用,我们鼓励源服务器尽可能提供准确的过期时间。”

  缓存控制

  Cache-Control 字段中可以声明更多元素,例如 no-cache、must-revalidate、max-age=0 等。这些元素用于指定页面缓存的最长时间,将如何缓存,它将如何转换为不同的介质,以及如何将其存储在持久介质中。但是任何 Cache-Control 命令都不能保证隐私或数据安全。“private”和“no-store”指令可以为隐私和安全提供一些帮助,但它们不能用作身份验证和加密的替代品。

  最后修改

  Last-Modified 和 ETag 是与 Conditional Request 相关的两个字段。如果缓存收到一个页面请求,它会发送一个验证请求来询问服务器该页面是否已更改,在 HTTP 标头中带有“ETag”和“If Modify since”标头。服务器根据该信息判断是否有更新信息。如果不是,则返回 HTTP 304 (NotModify);如果有更新,则返回 HTTP 200 和更新后的页面内容,并携带新的“ETag”和“LastModified”。

  使用这种机制可以避免重复向浏览器发送文件,但仍然会产生 HTTP 请求。

  标签

  既然有了 Last-Modified,为什么还要使用 ETag 字段呢?因为如果在一秒钟内对文件进行两次更改,Last-Modified 将是不正确的。因此,HTTP/1.1 使用 Entity Tag 头来提供更严格的验证。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线