• 欢迎访问ByWei.Cn,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,加入百味博客 QQ群
  • 已升级为最新版主题,并将持续优化改造中,支持说说碎语功能,可像添加文章一样直接添加说说,博客主题升级啦
  • 感谢您百度求点赞啊!百度网址
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏百味博客吧
  • 博主热烈欢迎 软件定制开发 联系:http://www.bywei.cn

网页加载速度之cookie优化

Web前端 bywei 6年前 (2013-04-08) 1187次浏览 0个评论 扫描二维码

cookie 的作用和弊端

Cookie的概念:

Cookie 是由服务器端生成,发送给 User-Agent(一般是浏览器),浏览器会将 Cookie 的 key/value 保存到某个目录下的文本文件内,下次请求同一网站时就发送该 Cookie 给服务器(前提是浏览器设置为启用 cookie)。

Cookie 工作原理:

一般来说,Cookie 通过 HTTP Headers 从服务器端返回到浏览器上。

首先,服务器端在响应中利用 Set-Cookie header 来创建一个 Cookie,然后,浏览器在它的请求中通过 Cookie header 包含这个已经创建的 Cookie,并且反它返回至服务器,从而完成浏览器的论证。

例如,我们 创建了一个名字为 login 的 Cookie 来包含访问者的信息,创建 Cookie 时,服务器端的 Header,如下面所示,这里假设访问者的注册名是 “Michael Jordan”,同时还对所创建的 Cookie 的属性如 path、domain、expires 等进行了指定。

上面这个 Header 会自动在浏览器端计算机的 Cookie 文件中添加一条记录。浏览器将变量名为“login”的 Cookie 赋值为“Michael Jordon”。注意,在实际传递过程中这个 Cookie 的值是经过了 URLEncode 方法 URL 编码操作的。 这个含有 Cookie 值的 HTTP Header 被保存到浏览器的 Cookie 文件后,Header 就通知浏览器将 Cookie 通过请求以忽略路径的方式返回到服务器,完成浏览器的认证操 作。

 

Cookie 属性:

Expires –过期时间:指定 cookie 的生命期。具体是值是过期日期。如果想让 cookie 的存在期限超过当前浏览器会话时间,就必须使用这个属性。当过了到期日期时,浏览器就可以删除 cookie 文件,没有任何影响。

例如上面的 Cookie 在浏览器上 expires=Monday,01-Mar-99 00:00:01 GMT,表示只保存到 1999 年 3 月 1 日 1 秒。当然,如果浏览器上 Cookie 太多,超过了系统所允许的范围,浏览器将自动对它进行删除。

Path –路径:指 定与 cookie 关联的 WEB 页。值可以是一个目录,或者是一个路径。如果/head/index.html 建立了一个 cookie,那么在/head /目录里的所有页面,以及该目录下面任何子目录里的页面都可以访问这个 cookie。这就是说,在/head/stories/articles 里的任何 页面都可以访问/head/index.html 建立的 cookie。但是,如果/zdnn/需要访问/head/index.html 设置的 cookes,该怎么办?这时,我们要把 cookies 的 path 属性设置成“/”。在指定路径的时候,凡是来自同一服务器,URL 里有相同路径的所有 WEB 页面都可以共享 cookies。现在看另一个例子:如果想让/head/filters/和/head/stories/共享 cookies,就要 把 path 设成“/head”。

Domain –域:指 定关联的 WEB 服务器或域。值是域名,比如 goaler.com。这是对 path 路径属性的一个延伸。如果我们想让 abc.mycompany.com 能 够访问 bbs.mycompany.com 设置的 cookies,该怎么办?我们可以把 domain 属性设置成“mycompany.com”,并把 path 属性设置成“/”。FYI:不能把 cookies 域属性设置成与设置它的服务器的所在域不同的值。

Secure –安全:指 定 cookie 的值通过网络如何在用户和 WEB 服务器之间传递。这个属性的值或者是“secure”,或者为空。缺省情况下,该属性为空,也就是使用不安 全的 HTTP 连接传递数据。如果一个 cookie 标记为 secure,那么,它与 WEB 服务器之间就通过 HTTPS 或者其它安全协议传递数据。不过,设置 了 secure 属性不代表其他人不能看到你机器本地保存的 cookie。换句话说,把 cookie 设置为 secure,只保证 cookie 与 WEB 服务器 之间的数据传输过程加密,而保存在本地的 cookie 文件并不加密。如果想让本地 cookie 也加密,得自己加密数据。

 

Cookie 的优点:

(1)、 保存用户登录状态。例如将用户 id 存储于一个 cookie 内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie 还可以设置   过期时间,当超过时间期限后,cookie 就会自动消失。因此,系统往往可以提示用户保    持登录状态的时间:常见选项 有一个月、三个 月、一年等。
(2)、跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了 cookie 后就 会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后台完成,所以这样 的页面就像为某个用户所定制的一样,使用起来非常方便。

(3)、定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用 cookie 来记录用 户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。
(4)、创建购物车。正如在前面的例子中使用 cookie 来记录用户需要购买的商品一样,在结 账的时候可以统一提交。例如淘宝网就使用 cookie 记录了用户曾经浏览过的商品,方便随时进行比较。当然,上述应用仅仅是 cookie 能完成的部分应 用,还有更多的功能需要全局变量。

(5)、让不同 CGI 之间的通讯更加灵活

 

Cookie 的缺点:

(1)、每次 HTTP 请求都会带下去,导致服务器上行带宽成本高,用户的访问速度受到影响。

(2)、cookie 安全性不够高,Cookie 权限作用域过大会有很大的安全隐患。

 

Cookie 的优化点:

(1)、去除不必要的 cookie,例如:

(2)、使 cookie 体积尽量小以减少对用户响应的影响,尽量控制单个 Cookie 的大小不要超过 4K,否则页面打开速度将会非常的慢。

(3)、注意在适应级别的域名(domain)上设置 cookie 以便使子域名不受影响

(4)、设置合理过期时间。较早地 Expire 时间和不要过早去清除 cookie,都会改善用户的响应时间

(5)、静态页面分域名管理,尽量实现和支持无 cookie 的 HTTP 请求,提高访问速度


百味博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:网页加载速度之 cookie 优化
喜欢 (0)
[微信扫一扫]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址