享学课堂特邀作者:老顾
转载请声明出处!
前言
今天老顾带着大家了解一下session会话在微服务架构中采用的技术方案,以及 企业应用中需要注意的问题。
session作用
我们知道在web应用中,web服务器和浏览器之间是用http协议进行通信的,而http协议是无状态的,也就是每个请求都是独立的。如:用户看一条A新闻,不管是谁看到的都是一模一样的新闻。也就是跟用户是谁没有任何关系。
但业务自身的发展,需要把不同的内容展示给不同的用户,即信息和用户状态关联起来。如:历史阅读列表—列出用户之前看的新闻。这个需求就是跟用户相关,每个用户看到的历史阅读列表都是不一样的。
Session的产生就是为了解决这个问题,把服务器和客户端之间进行状态保持的解决方案。
session原理
浏览器在第一次访问web服务器,服务器端会响应一个sessionId,并且把这个sessionId传输给浏览器,并以cookie保存sessionId到浏览器本地。
以后的访问会把这个cookie的sessionId以请求头的方式传给服务器,这样服务器就可以拿着这个sessionId进行查找,服务器中有没有此sessionId对应的用户,这样就能标识出哪个用户,如果有用户相关的业务,就是利用这个sessionId返回用户相关的业务。
本质就是浏览器客户端本地保存了sessionId,服务器端保存了sessionId和用户信息映射,这样就实现了web应用有状态化。