理解cookie工作机制

上一篇 / 下一篇  2009-04-12 21:44:10 / 个人分类:测试相关知识

/u.S6o4If0A?_~w y0   cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。

I;nG/r kuf051Testing软件测试网w1u,?+x'\&k LU

   而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

y*{qz;[;NH0

c Z6H Sq!^EF6]0cookie的内容主要包括:名字,值,过期时间,路径和域。

9R6c"?G`3jII)H]0

C:A'v1M.k@9g0其中域可以指定某一个域比如.google.com,相当于总店招牌,比如宝洁公司,也可以指定一个域下的具体某台机器比如www.google.com或者froogle.google.com,可以用飘柔来做比。
:|!_Q D{ Q'W0路径就是跟在域名后面的URL路径,比如/或者/foo等等,可以用某飘柔专柜做比。
Y w7M&mWru0路径与域合在一起就构成了cookie的作用范围。
I2d JTk;MK0如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

M@ac'j U9k051Testing软件测试网"n2r ]c*u(]9q

存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。对于IE,在一个打开的窗口上按Ctrl-N(或者从文件菜单)打开的窗口可以与原窗口共享,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie;对于Mozilla Firefox0.8,所有的进程和标签页都可以共享同样的cookie。一般来说是用javascript的window.open打开的窗口会与原窗口共享内存cookie。浏览器对于会话cookie的这种只认cookie不认人的处理方式经常给采用session机制的web应用程序开发者造成很大的困扰。51Testing软件测试网 W(w{iW9x


TAG:

 

评分:0

我来说两句

gezj2006

gezj2006

做最好的自己!

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 12082
  • 日志数: 19
  • 图片数: 2
  • 建立时间: 2008-10-20
  • 更新时间: 2009-09-24

RSS订阅

Open Toolbar