前言
网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。
作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices for Speeding Up Your Web Site http://developer.yahoo.com/performance/rules.html,同时,他们还发布了一个相应的测试工具Yslow http://developer.yahoo.com/yslow/
我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。
准备工作
为了跟随我进行后续的学习,你需要准备如下的开发环境和工具
- Google Chrome 或者firefox ,并且安装 Yslow这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
- https://chrome.google.com/webstore/detail/yslow/ninejjcohidippngpapiilnmkgllmakh
- https://addons.mozilla.org/en-US/firefox/addon/yslow/
- 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
- Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
- http://www.microsoft.com/visualstudio/eng/downloads
- 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。
本文要讨论的话题
这一篇我和大家讨论的是第二十三条原则:Reduce COOKIE Size (减小COOKIE的体积)。
COOKIE,正如它的名称(小甜饼)一样,本来名不见经传,在网站开发中也算不上什么重大的技术,但因为今年央视的3.15晚会上,却一下子火了,全国人民都知道了,部分不明真相的群众觉得这简直是洪水猛兽,活脱脱地一个害人的玩意儿。
其实COOKIE没有那么可怕,说到底它只是一种状态保存的技术。网站为了能够为用户提供个性化的服务(例如自动登录,个性选项的保存等),会考虑将一些数据放在客户端机器上。COOKIE实际上是一个文本文件,所以它在客户端机器上确实有一定的安全风险。但罪不在COOKIE,更完全没有必要妖魔化它。对于COOKIE的原理,以及大家之前热议的COOKIE可能泄露隐私的问题,还有业界对此的一些新的应对,我准备单独再写一篇文章来讨论,以免混淆了本文的主题。
本文的主题是:
如果需要用COOKIE,那么应该尽可能使其体积小一些。
这样做的原因是:
如果对某个域(Domain)保存了COOKIE,那么针对这个域的所有请求,都会发送这些所有的COOKIE(哪怕当前请求根本用不着,例如针对图片的请求),大量地、重复地发送COOKIE毫无疑问会增加网络的流量,并因此而降低请求被执行的性能。
COOKIE是一个文本文件,针对每个域,如果他们要求保存COOKIE(而且需要持久保存的话),就会在本地的磁盘中创建出来一个文件。
【备注】针对每个域,只会有一个文件。
从技术上来说,这个文件的内容是由网站控制的,他可以决定要写什么内容在里面,他可以决定是否要加密。唯一的一个限制,如果我没有记错的话,这个文件的体积是不允许超过4KB(4096字节)的。