首先HTTP协议是无状态的,当我们开发的一些对状态有要求的接口时,CookieSession弥补了这一块的能力。

  1. 对于HTTP协议来说,Cookie只是请求头中的一个字段且与其他字段没什么区别。

  2. 浏览器对Cookie做了默认的支持并限制了Cookie的[同源策略],即同域才能访问Cookie的内容。

    如当我们做SSO(单点登录),一般可以把Cookie种在可访问的一级域名下。

Session

  1. Session是服务器为每个Web用户分配的独立状态存储空间。

    若用户的数据存放在存在某个单点服务器上时,当以七层或四层转发时,请求到后端集群的时候,就存在Session命中的问题(分布式Session问题),这时候需要有中心的方式去统一管理Session,比如存储在DB或缓存中。

  2. SessionID:可以由标准OAuth 2.0 来实现最终换取tokensessionId ,并持有过期时间自动刷新逻辑。

总结:

Cookie 和 Session 都是辅助HTTP协议无状态性产生的。