Session 和Cookie的区别 以及其工作原理

工作挺久了,但是对Cookie和Session一直都是懵懵懂懂,哈哈哈~~~,这几天在网上看很多关于Cookie和Session 的文章,也学习了一些视频,终于好像有点弄懂了,记录一下。

为什么会出现Cookie 和Session呢???

由于Http是一个无状态连接协议,那么也就是说,http的每一次请求都是独立的,这样的话,是没有办法判断每次的请求者是谁,因此,就有了session和cookie的出现。用session和cookie来追踪会话,cookie通过在客户端记录信息来确认用户身份,session是通过服务器端记录信息来确定用户身份信息。

Cookie机制

cookie技术是客户端解决方案。通过我自己写的一个小栗子来剖析一下cookie 的工作原理:

1.cookie 创建

从例子中我们可以看出是通过 HttpServletResponse 的add 方法将cookie信息响应给客户端:从图中可以看出后台创建的cookie信息在响应头中Set-Cookie 中

在客户端我们可以查看到我们创建的cookie信息是以文本信息存储在本地客户端

下面再看一下如何获取cookie信息:

2.cookie获取

从图中可以看出cookie是一个数组类型。所以说cookie是可以存储多个用户身份信息的。发送请求时可以看到request Hearders 将cookie信息传送到后台。Cookie[] cookies = req.getCookies();后台通过getCookies()方法获取cookie来确定用户身份。这就是整个http请求与响应cookie会话的工作原理。

3.session 的创建

我们还是通过一个小栗子来认识session的工作机制

从图中可以看出session也是响应到response headers Set-Cookie中,session与cookie不同的是session响应给客户端是JSESSIONID而真正的session信息是存储在服务器端的。 而cookie响应的是cookie信息,从这两者中应该可以看出,session会话是比较安全的不用暴露用户信息,而cookie是不安全,容易被伪造cookie信息。

4.seesion 获取

可以看出session 会话是依赖于cookie的,当客户端向服务器端发送请求时是通过response headers Cookie 发送sessionid 到服务器,服务器会根据sessionId 获取该会用的session信息也就是用户身份信息。

到这里Session 与Cookie的工作机制就介绍完了~~~~,欢迎留下小爱心,鼓励一下程序员小姐姐^-^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值