session 与 cookie 的区别和联系

session 与 cookie 的区别和联系

区别:


1. 存放位置:Session 保存在服务器,Cookie 保存在客户端。


2. 存放的形式:Session 是以对象的形式保存在服务器,Cookie 以字符串的形式保存在客户端。


3. 用途:Cookies 适合做保存用户的个人设置,爱好等,Session 适合做客户的身份验证


4. 路径:Session 不能区分路径,同一个用户在访问一个网站期间,所有的 Session 在任何一个地方都可以访问到。而 Cookie 中如果设置了路径


参数,那么同一个网站中不同路径下的 Cookie 互相是访问不到的。


5. 安全性:Cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗,考虑到安全应当使用 session


6. 大小以及数量限制:每个域名所包含的 cookie 数:IE7/8,FireFox:50 个,Opera30 个; Cookie 总大小:Firefox 和 Safari 允许 cookie 多达


4097 个字节,Opera 允许 cookie 多达 4096 个字 节,InternetExplorer 允许 cookie 多达 4095 个字节;一般认为 Session 没有大小和数量限制。


联系:


Session 需要借助 Cookie 才能正常工作。如果客户端完全禁止 Cookie,Session 将失效!因为 Session 是由应用服务器维持的一个 服务器端存储


空间,用户在连接服务器时,会由服务器生成一个唯一的 SessionID, 用该 SessionID 为标识符来存取服务器端的 Session 存储空间。


而 SessionID 这一数据则是保存到客户端,用 Cookie 保存的,用户提交页面时,会将这一 SessionID 提交到服务器端,来存取 Session 数据。这


一过程,是不用开发人员干预的。所以一旦客户端禁用 Cookie,那么 Session 也会失效。


2020-02-05 09:58:35
0