已转开发,博客新地址:http://welcomezhang.iteye.com/

浅谈cookie、session

上一篇 / 下一篇  2011-08-27 12:59:01 / 个人分类:web基础

自己之前有了解过sessioncookie的区别,可没有掌握到位;现简单查阅,大伙可以一起理解下,多谢相关文章作者51Testing软件测试网!D)@Y"r R4k5Eup
51Testing软件测试网_wVf7EZcT
COOKIE
工作机制51Testing软件测试网;QH#{La:F,Z9[

正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

5o6^3j1N-rvE.c/e?0

 

(d~&Jr%m Ul)o-F-] PY0

cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式.51Testing软件测试网ANy{kXT

 51Testing软件测试网Obmv-X?\%cK;rK

 

u0ueK3rr0

SESSION工作机制51Testing软件测试网.w"i \[A,J~

整个过程就是51Testing软件测试网yzL i\*eHP

1客户端发起第一次请求

|p#x A6o.n:x6L2D0

2服务器端生成SESSIONID的唯一标识,以及对应的Session对象,然后保存到映射区,其实就是一个Map的东西

B wi lK"su0

3服务器在处理完毕后,将SESSIONID发送给客户端

Ob+x.EI'Z(}4@3b0

4客户端将SESSIONID保存到Cookie里面(注,当客户端禁用cookie时,就必须采用其他机制),以便后面使用

_^e ~9gC0]0

5后续的请求,Cookie里面的SESSIONID会被一起发送到服务器端

D}&JL.Ze-j6[$K0

6服务器在映射区查找对应SESSIONIDSession,如果找不到或者已经超时过期,则转到第2步处理

o-rsk.`0

7服务器端处理完毕后,将Session的最后使用时间更新,然后将结果返回客户端

-V"D\!k.O,s[Hd0

 

[ bq/h6a4F/I0

关于Session超时,就是对应SESSIONIDSession里面的最后使用时间与当前的时间差异,已经超过了系统允许的时间,比如20分钟。

g*G3F%w+f@ U&t0

此时系统会转到第二步,重新生成一个SESSIONID以及对应的Session51Testing软件测试网SD%rSk!o#k:iyz

 

t;E{3c%E0

 51Testing软件测试网y'N4@2God3Rc

COOKIESESSION区别

jE"n B$iN3L4G6g b0

1cookie数据存放在客户的浏览器上,session数据放在服务器上。

&uCm g3\p;M;i'I A0

2cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session51Testing软件测试网x&}2~VP

3session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE51Testing软件测试网'J{a Yy

4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K

3s-omI"?&@h$V6A0

5建议:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE

!k3ua'W{0

TAG: Cookie cookie Session session

 

评分:0

我来说两句

Open Toolbar