Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4627
  • 博文数量: 4
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-26 16:45
文章分类
文章存档

2009年(4)

我的朋友
最近访客

分类: 系统运维

2009-11-30 09:36:11

一个服务于手机用户的网站是指其对客户请求做出响应的格式是由手机或浏览器的种类决定的。网站一方面为了服务于手机用户,同时又要缓存web服务器的响应,这类网站就必须将用户代理信息作为缓存设备对请求作出正确响应的部分识别依据。

       比如说,有三台不同型号的手机同时访问?“news.html”?这个站点,然而,由于它们的用户代理字符串的不同,我们仍需要缓存三个不同的响应,这样很可能会极大增加被缓存的响应的数量(因为其中同一站点的资料文本在成倍增加)。

       现在,通过配置aiCache, 我们可将删减或改写后的用户代理字符串作为aiCache服务器对用户请求做出正确响应的部分识别依据(此特性只有mobile-enabled版本才可做到),从而为上述问题提供了完美的解决方案。

      在之前各项功能的基础上,aiCache的这项性能解决了市面上存在多种手机所带来的难题。以前,不同的固件文本,手机设备提供商和运营者都会导致手机向网站发送一个不同的用户代理字符串,而想要缓存所有手机各不相同的响应数据是十分困难的。

      然而其实我们不难发现,市场上绝大部分的手机可被归纳为几类不同的“家族”。例如,按照功能,对Javascript?的支持程度以及屏幕大小不同,黑莓手机可以被归纳为两个类别,苹果手机本身就是一个类别等等。这样就大大简化了以前存在的的问题。

      aiCache就充分利用了这一点。您只需对用户代理字符串具体设定改写规则,改写或删减后新的字符串可就作为aiCache服务器缓存响应的部分签名。

      另外,这个被“压缩”了的客户代理字符串还会与用户请求中的X-UA-Rewrite?header?一并送交原始服务器。然后,原始服务器会读取并作用于这个报头参数(header?value),修改原始服务器的响应以便配合手机类型的差异。

     例如,将本不支持Javascript的手机重置到无Javascript内容的页面,并自动调整页面大小以适合不同尺寸的屏幕。

      当然,原始服务器也可依照用户代理字符串的实际参数来形成响应。aiCache从不修改它,而是从请求设备向原始服务器逐字上传 但如果这样的话,服务器端的代码就必须能够配合众多不同的手机。

     将大量不同的用户代理字符串减少为一小部分,?除了对原始服务器有好处之外 ,还对缓存本身也产生积极的影响——包括提高缓存效率、部分减少网络拥堵、降低对原始服务器配置的要求等。极大的简化了web服务器应对当今市面上所有五花八门的手机的逻辑流程。

     一直以来,人们的理想就是访问URL不随自己使用手机的种类而改变。这样的话,无论使用的是哪种手机,访问任何新闻网页只要输入news.html?,想访问任何体育网页输入sports.html就可以了。

     遗憾的是,现实中对于URL变化情况的处理方法要复杂得多,例如给每个网址都加上手机种类的前缀。这往往让用户觉得十分麻烦。

     如前所述,aiCache对此提供了完美的解决方案。

阅读(272) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~