优化网站设计(二十三):减小Cookie的体积

前言

网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。

作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices for Speeding Up Your Web Site  http://developer.yahoo.com/performance/rules.html,同时,他们还发布了一个相应的测试工具Yslow http://developer.yahoo.com/yslow/

我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。

准备工作

为了跟随我进行后续的学习,你需要准备如下的开发环境和工具

  1. Google Chrome 或者firefox ,并且安装 Yslow这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
    1. https://chrome.google.com/webstore/detail/yslow/ninejjcohidippngpapiilnmkgllmakh
    2. https://addons.mozilla.org/en-US/firefox/addon/yslow/
    3. 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
  2. Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
    1. http://www.microsoft.com/visualstudio/eng/downloads
  3. 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。

本文要讨论的话题

这一篇我和大家讨论的是第二十三条原则:Reduce Cookie Size (减小Cookie的体积)。

Cookie,正如它的名称(小甜饼)一样,本来名不见经传,在网站开发中也算不上什么重大的技术,但因为今年央视的3.15晚会上,却一下子火了,全国人民都知道了,部分不明真相的群众觉得这简直是洪水猛兽,活脱脱地一个害人的玩意儿。

其实Cookie没有那么可怕,说到底它只是一种状态保存的技术。网站为了能够为用户提供个性化的服务(例如自动登录,个性选项的保存等),会考虑将一些数据放在客户端机器上。Cookie实际上是一个文本文件,所以它在客户端机器上确实有一定的安全风险。但罪不在Cookie,更完全没有必要妖魔化它。对于Cookie的原理,以及大家之前热议的Cookie可能泄露隐私的问题,还有业界对此的一些新的应对,我准备单独再写一篇文章来讨论,以免混淆了本文的主题。

本文的主题是:

如果需要用Cookie,那么应该尽可能使其体积小一些。

这样做的原因是:

如果对某个域(Domain)保存了Cookie,那么针对这个域的所有请求,都会发送这些所有的Cookie(哪怕当前请求根本用不着,例如针对图片的请求),大量地、重复地发送Cookie毫无疑问会增加网络的流量,并因此而降低请求被执行的性能

Cookie是一个文本文件,针对每个域,如果他们要求保存Cookie(而且需要持久保存的话),就会在本地的磁盘中创建出来一个文件。

image

【备注】针对每个域,只会有一个文件。

从技术上来说,这个文件的内容是由网站控制的,他可以决定要写什么内容在里面,他可以决定是否要加密。唯一的一个限制,如果我没有记错的话,这个文件的体积是不允许超过4KB(4096字节)的。

posted @ 2013-05-18 17:39  陈希章  阅读(1900)  评论(1编辑  收藏  举报