【Java-Web】Session&Cookie-概念
什么是Session与Cookie
简单来讲,它们其实就是HTTP中的一个配置项,在Servlet中其实就是对应一个类而已。
1. Cookie
Cookie可以理解是客户端浏览器通过HTTP来访问服务端的一个沟通辅助工具;存在于HTTP的响应头Header里面,因为HTTP是无状态的,也就是说用户客户端发起一个HTTP请求结束后就不会保存任何信息,服务端也不知道下一次请求是不是上一次请求的用户;使用Cookie可以让HTTP变得“有状态”,怎么实现的呢,用户客户端发起一个HTTP请求的时候,到达服务端后,服务端会将一些Key/Value键值对数据响应给用户客户端,客户端使用Cookie将这些键值对数据保存起来,下一次HTTP请求就将COokie保存的键值对数据一起发送给服务端,服务端就可以根据这些Cookie数据是识别访问的用户,从而可以根据用户来划分访问了。
就像在一个店里办会员卡一样,第一次办会员卡是,上面会有记录一些个人信息,下一次带会员卡去连锁店里消费的时候,会自动识别你的会员卡,并自动帮你打折。
Cookie属性值
版本 |
属性项 |
设置响应头 |
||||||||||||||||||||||
Version0 |
|
Set-Cookie |
||||||||||||||||||||||
Version1 |
|
Set-Cookie2 |
2. Session
Session的出现是为了解决使用cookie所带来的问题:客户端每次HTTP请求都发送cookie数据给服务端,如果cookie数据很多,会增加HTTP数据传输量的压力。
解决这个问题的办法是:客户端每次HTTP请求携带的Cookie只需要携带一个sessionID给服务端就可以了,服务端根据这个ID去查询服务端存储的交互数据(也就是session数据)。这样客户端只需要存储和发送一个sessionID,服务端做交互数据存储就解决这个问题了。
session的工作方式:
(1)基于请求URL上携带的K-V参数
(2)基于HTTP请求头携带的Cookie
(3)基于SSL配置属性值SessionID
- 点赞
- 收藏
- 关注作者
评论(0)