• 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

  • 相关阅读:
    SpringMVC学习指南【笔记6】JSTL标签、函数
    SpringMVC学习指南【笔记5】EL表达式、实现免脚本JSP页面、禁用EL计算的设置
    SpringMVC学习指南【笔记4】数据绑定、表单标签库、转换器、格式化、验证器
    序列封包和序列解包
    python 字符串分割,连接方法
    Jmeter常用插件(转)
    不同的content-type,Jmeter入参不同
    性能监测(CPU)
    正则表达式
    乱码问题
  • 原文地址:https://www.cnblogs.com/john1015/p/13744675.html
Copyright © 2020-2023  润新知