前后端分离的会话保存

一、背景

什么是前后端分离?

指的是后端应用程序和前端HTML代码不在同一个服务器程序中。

传统不分离的架构:JavaWeb程序用Tomcat部署,后端程序和HTML资源都在Tomcat的webapps目录里。

二、前后端分离的会话保存位置

1、第一种,保存在Session对象中

适合单个服务器部署的情况。

2、第二种,保存在第三方的Redis缓冲中

适合多台服务器的集群部署。

但是只提供一台Redis缓冲服务器。

三、会话信息的传递头部

(一)服务器返回

1、在Set-Cookie头部中返回

2、在登录成功后,用响应体返回

用一个JSON字符串设置在响应体返回,例如:

{"user":"user01", "sid":"KUGFHH56616987"}

(二)客户端请求携带会话

1、在Cookie头部传递

2、在Authentication头部传递

3、自定义头部传递

例如:

SessionID: HGFDYI5566169887

4、用url参数或者请求体传递

假设sid是会话参数。

http://localhost:8484/add?sid=HFDET5888

四、客户端保存会话信息的位置

1、浏览器默认保存Cookie

2、用localStorage全局对象或者sessionStorage会话对象保存在浏览器

3、用SQL语句保存在浏览器数据库里。