对于cookie与session关联技术的总结

一:cookie与session都是可以用来保存信息,存储数据的。cookie是在客户端保存的(如浏览器),而session是在服务端保存的(如tomcat)。session是会话级别的(在一个会话期间,session里面的数据都不会消失)

二:cookie与session的关联技术

通过cookie可以关联session,服务端创建的每一个session都是存储在服务端内存中的,服务器的内存可能会有多个session,并且每一个session都会有一个sessionId,每一次新建一个session都会通过增加一个请求头的方法创建一个cookie来保存sessionId客户端每次向服务器发起请求都会带上cookie,服务端可以通过cookie携带的sessionId来找到对应的session,从而获取session里面的数据。(每一个cookie都有自己的有效路径,通过设置自己的有效路径可以决定在发送哪些请求时可以带上该cookie,默认是本身的webapp实例)

所以我们首次登陆一个账号,一般会生成一个或多个唯一的cookie来保存该账号对该网站的会话信息(cookie保存sessionId,sessionId指向一个唯一的session,session保存会话信息

但是当浏览器禁用cookie后,浏览器也就没有办法通过cookie来传递sessionId了(此时session还在,只是客户端没有携带sessionId从而无法找到对应的session,解决的办法是通过url重写,把sessionId参数携带在url中,连同url一起发送给服务器即可)

另:当调用request.geSession()方法时,首先会根据客户端传递的cookie保存的sessionId来寻找对应的session,当找不到sessionId对应的session或者没有携带sessionId时,就会自动创建一个session对象并把生成的sessionId通过客户端用cookie保存起来(客户端的cookie保存sessionId所用的key是JSESSIONID)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值