• Session和Cookie


    说到Session和Cookie,可能每个人都会在这遇到过坎,傻傻分不清~

    我们先来说一下什么是浏览器,什么是服务器:

                 浏览器是客户端,服务器是服务端,浏览器要浏览页面的话需要发送请求到服务器,

    服务器响应后,浏览器方可浏览,浏览器地址里一般使用绝对路径,服务器一般使用相对路径

    Session什么时候失效?

    当进行了关闭浏览器的操作,再次打开时会发现没有session数据了,这时代表着session使用结束了,但不意味着session被销毁了,
    因为session创建和销毁时在服务器端进行的,当浏览器访问服务器就会创建一个JSESSIONID,浏览器通过这个ID来访问服务器中所存储的session,
    当浏览器关闭后,再次打开浏览器访问服务器,浏览器已经"失忆"了,没有了之前的JSESSIONID ,所以就找不到服务器端他原来的session。

        1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。

    可以通过这个来设置时间:session.setMaxInactiveInterval(10);  单位是S。
    可以在配置文件中设置:<sessionState timeout="30"></sessionState>

      2. 调用Session的invalidate方法。

    什么是Cookie:

    Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookieSession:将数据存储到服务器端,安全性相对好,增加服务器的压力。

    Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一性标识JSESSIONID,JSESSIONID被清了之后(cookie被删),即使session还存在,但是因为cookie存储的JSESSIONID不在了,也找不到这个Session了

    cookie和session的区别:

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
    考虑到安全应当使用session。

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

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

    5、所以个人建议:
    将登陆信息等重要信息存放为SESSION
    其他信息如果需要保留,可以放在COOKIE中

  • 相关阅读:
    移动端疫情展示
    第四周学习总结
    构建之法阅读笔记二
    第三周学习总结
    AJAX学习篇
    jQuery学习篇
    软件工程开课第二周——介绍篇
    【Spring】DispatcherServlet的启动和初始化
    【设计模式】模板方法模式小解
    【Mybatis】MyBatis调用带有返回结果、output参数的存储过程上与ibatis的区别
  • 原文地址:https://www.cnblogs.com/buwang/p/9962098.html
Copyright © 2020-2023  润新知