cookie 与 session 的区别、联系

来源:互联网 发布:视频剪切软件下载 编辑:程序博客网 时间:2024/05/22 13:34

1、存放位置:

     Session 存放在服务器端;

     Cookie 存放在客户端;

 

2、保存形式:

     Session保存在服务器的内存中(在服务器端设置超时时间,与浏览器设置无关);

     Cookie以文件形式存放在客户端(可以通过浏览器设置进行更改、清除),单个cookie闻见一般限制为3k;

 

3、安全性:

     Session 较安全;

     Cookie 不安全(可以通过分析本地的cookie进行cookie欺骗);

 

4、性能:

     Session 当访问量增大时会占用服务器内存从而消耗服务器性能;

     Cookie 不消耗服务器性能,考虑减轻服务器负荷可以考虑使用cookie

 

5、persistent cookie(cookie)与 session cookie的 区别:

 

      http是无状态协议,客户每次读取web页面时,服务器都会打开新的会话,

而且服务器也不会自动维护客户的上下文信息。

 

      Session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的

值保存在服务器端,通过SessionID来区分不同的客户。

 

      Session 是以 cookie 或 URL重写为基础的,默认使用cookie来实现,系统

会创建一个名为 jessionID 的输出cookie(我们叫做session cookie),区别于

persistent cookies(也就是我们常说的cookie),cookie是存放在硬盘上的,

而session cookie是存储在浏览器内存中的,我们通常是看不到session cookie

(jessionID)的,但是当我们吧浏览器的cookie禁用后,web服务器会采用URL

重写的方式传递SessionID,我们就可以在浏览器地址栏看到 sessionid=KWJH

UG6JJM65HS2K6 之类的字符串,明白了原理,两者的区别就一目了然。

 

      Session cookie 针对某一次会话而言,会话结束 session cookie 也就随着消失了;

      persistent cookie 只是存在与客户端银盘上的文本(通常是加密的),可能会遭到 cookie欺骗和针对cookie的跨站脚本攻击;

      所以 session cookie 更安全。

      session cookie 是不能跨窗口使用的,当你新开一个浏览器窗口进入相同页面时,

系统会赋予你一个新的 sessionID,这样我们信息共享的目的就达不到了,此时我们

可以先把 sessionID 保存在 persistent cookie 中,然后在新窗口中读出来,就可以得

到上一个窗口的 sessionID了,这样通过 session cookie 和 persistent cookie 的结合

就可以实现跨窗口的 session tracking (会话跟踪)。

 

1 0
原创粉丝点击