Session和Cookie

本文深入解析了Session和Cookie这两种会话技术的区别与应用。详细介绍了Cookie作为客户端会话技术的特性,包括数据存储限制、安全性及持久化存储方式。同时,阐述了Session作为服务器端会话技术的工作原理,如何基于Cookie识别客户端,以及其数据存储优势和安全性。对比分析了两者的数据存储位置、大小限制和安全性差异。

Session和Cookie的

1.Cookie
客户端会话技术

      数据存储在客户端,只能存String类型,并且大小有限制,一般为4KB,Cookie数量有限制(20个),不同浏览器不同;

      一个Tomcat服务器中的共享问题:Cookies的获取限制,通过setPath()设置访问范围限制,默认为当前虚拟目录;

      多个Tomcat服务器下的共享问题:通过setDomain()设置域名,如果一级域名相同,二级域名下的cookie是可以访问到的;

      Cookie的持久化存储,setMaxAge() 设置存储时间,如果不设置,默认关闭浏览器即删除(整数:秒为单位,设置存储时长;负数:默认值,即关闭删除,可以不写;0,删除客户端Cookie);

      作用:一般用来存储不敏感的信息,一般用来做服务器对客户端的用户识别;

      注意事项:Tomcat8下不能存中文,无法存储特殊的字符,如空格,需要URL编码,URLENCODE的encode进行编码,对应的是URLDECODE解码

2.Session
服务器端会话技术

      数据存储在服务器端,以Cookie为基础做客户端识别;

      HttpSession session = request.getHttpSession();

      如果第一次访问,客户端Cookie中无JSESSIONID,即新生成一个session对象,存放到服务器中;
      如果第二次访问,请求对象中Cookie中含有JSESSIONID,服务器会返回对象客户端的Session;

      session的钝化和活化,服务器正常关闭,会存放文件到Tomcat work目录下,服务器再次启动时,文件自动加载到服务器中,文件删除;

Session的销毁:

      *.服务器关闭;

      *.session对象调用invalidate()方法;

      *.默认失效时间30分钟,Tomcat 配置文件中可以配置

				<session-config>
                    <session-timeout>30</session-timeout>
                </session-config>
作用:

      1. session用于存储一次会话的多次请求的数据,存在服务器端
       2. session可以存储任意类型,任意大小的数据

两者区别

       1. session存储数据在服务器端,Cookie在客户端
       2. session没有数据大小限制,Cookie有
       3. session数据安全,Cookie相对于不安全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值