Cookie和Session

Cookie 是客户端的存储机制, Session 是服务端的存储机制。这两者结合使用, 来实现会话状态的存储

我先解释一下 Cookie, 它是客户端浏览器用来保存服务端数据的一种机制。

当通过浏览器进行网页访问的时候, 服务器可以把某一些状态数据以 key-value的方式写入到 Cookie 里面存储到客户端浏览器。然

后客户端下一次再访问服务器的时候, 就可以携带这些状态数据发送到服务器端, 服务端可以根据 Cookie 里面携带的内容来识别

使用者。Session 表示一个会话, 它是属于服务器端的容器对象, 默认情况下, 针对每一个浏览器的请求。Servlet 容器都会分配

一个 Session。Session 本质上是一个 ConcurrentHashMap, 可以存储当前会话产生的一些状态数据。我们都知道, Http 协议本

身是一个无状态协议, 也就是服务器并不知道客户端发送过来的多次请求是属于同一个用户。所以 Session 是用来弥补 Http 无状态

的不足, 简单来说, 服务器端可以利用session 来存储客户端在同一个会话里面的多次请求记录。基于服务端的 session 存储机

制, 再结合客户端的 Cookie 机制, 就可以实现有状态的 Http 协议。

具体的工作原理是:

1.客户端第一次访问服务端的时候, 服务端会针对这次请求创建一个会话(session), 并生成一个唯一的 sessionId 来标注这个会话。

2.然后服务端把这个 sessionid 写入到客户端浏览器的 cookie 里面, 用来实现客户端状态的保存。

3.在后续的请求里面, 每次都会携带sessionid, 服务器端就可以根据这个sessionid来识别当前的会话状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值