Session和Cookie

一、Session

1、Session是什么?

  • Session是会话
  • 用户打开浏览器,发送一系列的请求。然后关闭浏览器的过程就为一次会话

2、Session的作用

  • 保持某种状态,比如说,保存我们的登录状态。(也就是说,在访问其他页面之前要先判断是否登录。做个登录的记录)
  • Session的出现解决了http协议无状态的问题。
  • Session可以看作一个令牌,证明到过某地

(i)http协议是无状态的

在发送一次请求之后,浏览器和服务器之间的连接就断开了,服务器做的一系列的事情,浏览器都是不知道的,只有最后返回数据是,浏览器才知道服务器做了什么。

(ii)http协议无状态的原因

比如说,在一个时间点上,同时有100万人去访问百度。100万个请求和服务器连载一起,就会导致服务器压力很大,很容易有崩溃

3、Session的原理

4、Session什么时候会被销毁

  1. 浏览器关闭的时候,会被销毁
  2. 如果很久不使用到这个session,也会被销毁

(i)如何设计session存活时间

  • 在web.xml中就可以设置
  • <!--设置session的存活时间-->
    <session-config> 
        <!--单位是分钟-->
        <session-timeout>60</session-timeout> 
    </session-config>


二、Cookie 

1、Cookie是什么?

  • Cookie:
JSESSIONID=29AEF5EDCF8E95EA9943B64450006A28,username=admin,password=123

2、Cookie的作用

  • 和Session共同保存某种状态的

3、Cookie的保存位置

  • Cookie可以保存在浏览器中,浏览器关闭的时候Cookie就会消失,此时同Session
  • Cookie还可以保存到本地
//想把cookie保存在本地
//参数为需要保存的时间,单位为秒
//浏览器关闭的时候,并没有销毁这个cookie

//参数为正数的时候
//cookie.setMaxAge(60*60);//当前cookie被保存,关闭浏览器再开,还是可以获取到这个数据
//参数为负数的情况
cookie.setMaxAge(-3600);//设置负数和不设置是一样的,关闭浏览器,就清空cookie
//参数为0的情况
cookie.setMaxAge(0);//目的是为了去除同名的cookie


三、Cookie和Session的区别

1、存储位置

  • Session是存储在服务器中的
  • Cookies是存储在浏览器中的

2、存储数据的格式

  • Session可以存储任意数据

 

  • Cookie只能存储字符串

 3、安全性

  • Session的安全性高于Cookie,因为Cookie是存储在浏览器,而Session是存储在服务器中,服务器相对来说更加安全

4、存储个数

  • Cookie的存储个数是有限制的,每个浏览器都不一样
  • Session可以存储的数量更多

5、创建的方法不同

  • Session的创建方法
//请求对象直接调用getSession方法
HttpSession session = req.getSession();
  • Cookie的创建方法
//需要new对象
Cookie cookie = new Cookie("username","admin");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值