Session 与 Cookie 的交互

文章讲述了Cookie作为客户端存储机制,用于存储用户标识,以及Session作为服务器端的会话容器,如何通过创建SessionId和存储于Cookie中实现HTTP协议中的状态跟踪。两者共同确保了有状态的HTTP通信。
摘要由CSDN通过智能技术生成

一、基本流程

Cookie

Cookie是浏览器用来保存服务器端数据的一种机制,也就是客户端的存储机制。可以用来存储用户唯一标识,方便服务器端区分不同的用户

(1)浏览器第一次发送请求到服务器端

(2)服务器端以键值对的形式创建Cookie对象,并将Cookie写入到响应头中  

(3)浏览器会将响应头中的Cookie信息进行存储

(4)当浏览器再次请求服务器端时,会携带Cookie

Session

Session表示一个会话,它是属于服务器端的一个容器对象,也就是服务器端的存储机制。同样也是方便服务器端区分不同的用户

(1)浏览器第一次发送请求到服务器端

(2)服务器端创建一个Session,同时也会创建一个特殊的Cookie(name=JSESSIONID,value=sessionID),然后服务器端把这个sessionId写入到客户端浏览器的Cookie中

(3)当浏览器再次向请求服务器端时,浏览器会携带有JSESSIONID的Cookie对象

二、实现交互

Http协议本身是一个无状态协议,指的是对事务处理是没有记忆能力,也就是说服务器端并不知道客户端发送过来的每一次的请求,是否是来自同一个用户的,因此加入了Cookie、Session等存储机制的实现,是用来弥补Http无状态的一个不足。

Web = Http协议 + 状态机制 + 其他

结合上述关系,就是在浏览器第一次访问服务器端的时候,服务器端会针对这次请求,创建一个会话,并且生成一个唯一的SessionId,用来标记这个会话;然后服务器端把这个SessionId写入到浏览器的Cookie里面用来实现状态的存储,并再后续的请求里面,每次都会携带SessionId,服务器端就可以根据SeesionId用来识别当前这个会话。

简单来说,就是服务器端可以利用Session来存储客户端在同一个会话里面产生的多次请求的一个记录,然后基于服务器端的Session的存储机制,再结合客户端的Cookie的存储机制,就可以实现一个有状态的Http协议。

总的来说,Cookie是客户端的存储机制,Session是服务器端的存储机制

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值