cookie 与 session 的差别、联系

1、存放位置:

     Session 存放在server端。

     Cookie 存放在client;

 

2、保存形式:

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

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

 

3、安全性:

     Session 较安全。

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

 

4、性能:

     Session 当訪问量增大时会占用server内存从而消耗server性能。

     Cookie 不消耗server性能,考虑减轻server负荷能够考虑使用cookie

 

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

 

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

并且server也不会自己主动维护客户的上下文信息。

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

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

 

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

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

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

而session cookie是存储在浏览器内存中的。我们一般是看不到session cookie

(jessionID)的。可是当我们吧浏览器的cookie禁用后,webserver会採用URL

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

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

 

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

      persistent cookie 仅仅是存在与client银盘上的文本(一般是加密的),可能会遭到 cookie欺骗和针对cookie的跨站脚本攻击;

      所以 session cookie 更安全。

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

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

能够先把 sessionID 保存在 persistent cookie 中。然后在新窗体中读出来,就能够得

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

就能够实现跨窗体的 session tracking (会话跟踪)。

原文地址:https://www.cnblogs.com/gavanwanggw/p/7279134.html