7.9 缓存和广告

来源:互联网 发布:淘宝客服月总结报告 编辑:程序博客网 时间:2024/06/05 23:57

1. 发布广告者的两难处境

  • 你可能认为广告商会喜欢缓存。毕竟,如果到处都是缓存的话,广告商的成本会更低,缓存显示的广告会更快更漂亮。
  • 但是缓存会向原始服务器隐藏实际的访问次数,如果收益是基于访问次数的话,这就很麻烦了。

2. 发布者的响应

  • 现在,广告商会使用各种类型的“缓存清除”技术来确保缓存不会窃取他们的命中流量。他们会在内容上加上 no-cache 首部。他们会通过 CGI 网关提供广告。还会在每次访问时重写广告 URL。
  • 这些缓存清除技术并不仅用于代理缓存。实际上,现在主要将其用于每个 Web 浏览器中都启用了的缓存。但是,如果某些内容提供商维护其命中率的行为太过火了,就会降低缓存为其站点带来的积极作用。
  • 理想情况下,内容提供商会让缓存吸收其流量,而缓存会告诉内容提供商它们拦截了多少次命中。现在,缓存有好几种方式可以做到这一点。
  • 一种解决方案就是配置缓存,每次访问时都与原始服务器进行再验证。这样,每次访问时都会将命中推向原始服务器,但通常不会传送任何主体数据。当然,这样会降低事务处理的速度。
  • 有些缓存支持这种再验证的变体形式,在这种方式中,它们可以在后台发起条件 GET 或 HEAD 请求。用户不会感觉到时延,但这个请求会触发对原始服务器的离线访问。这是一种改进方式,但这种方式加重了缓存的负荷,极大地增加了流经网络的流量。

3. 日志迁移

  • 理想的解决方案是不需要将命中传递给服务器的。毕竟,缓存就可以记录下所有的命中。缓存只要将命中日志发送给服务器就行了。
  • 实际上,为了保持内容提供商们的满意度,有些大型缓存的提供商已经在对缓存日志进行人工处理,并将其传送给受影响的内容提供商了。
  • 但是,命中日志很大,很难移动。而缓存日志并没有被标准化或被组织成独立的日志,以传送给单独的内容提供商。而且,这里面还存在着认证和隐私问题。

4. 命中计数和使用限制

  • RFC 2227,“HTTP 的简单命中计数和使用限制”中定义了一种简单得多的方案。这个协议向 HTTP 中添加了一个称为 Meter 的首部,这个首部会周期性地将对特定 URL 的命中次数回送给服务器。通过这种方式,服务器可以从缓存周期性地获取对已缓存文档命中次数的更新。
  • 服务器还能控制在缓存必须向服务器汇报之前,其中的文档还可以使用多少次,或者为缓存文档设置一个时钟超时值。这种控制方式被称为使用限制。通过这种方式,服务器可以在缓存向原始服务器汇报之前,对已缓存资源的使用次数进行控制。
原创粉丝点击