Cookie和Session的区别

1、存放位置

  Cookie:Cookie数据存放在客户的浏览器上;

  Session:Session数据放在服务器上。

2、安全性

  Cookie:Cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,但可以设置加密;

  Session:存储在服务器上,无法伪造。

3、销毁方法

  Cookie:设置Cookie时间可以使Cookie过期;

  Session:使用Session-destory(),会销毁会话。

4、性能考虑

  Cookie:存放在客户端的浏览器上;

  Session:在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面。

5、数据量限制

  Cookie:单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie;

  Session:Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型。

6、生存周期

  Cookie:预先设置的生存周期,或永久的保存于本地的文件;

  Session:在IE启动到IE关闭(浏览器页面一关,session就消失了)。

过程分析:

  •   当登陆网站的时候,如果Web服务器使用的是session,那么所有的数据都保存在服务器上面。
  •   客户端每次请求服务器的时候会发送当前会话的session_id,服务器根据当前session_id判断相应的用户数据标志,以确定用户是否登陆,或具有某种权限。
  •   由于数据是存储在服务器上面,所以你不能伪造,但是如果你能够获取某个登陆用户的session_id,用特殊的浏览器伪造该用户的请求也是能够成功的。
  •   session_id是服务器和客户端链接时候随机分配的,一般来说是不会有重复的,但如果有大量的并发请求,也不是没有重复的可能性。
  •   Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

注意:

  •       session很容易失效,用户体验很差;
  •       虽然cookie不安全,但是可以加密 ;
  •       cookie也分为永久和暂时存在的;
  •       浏览器 有禁止cookie功能 ,但一般用户都不会设置;
  •      一定要设置失效时间,要不然浏览器关闭就消失了;

参考链接:https://www.cnblogs.com/l199616j/p/11195667.html

原文地址:https://www.cnblogs.com/john1015/p/13744675.html