express-session-cookie 解析

来源:互联网 发布:本拉登怎么死的 知乎 编辑:程序博客网 时间:2024/05/09 13:48
 保持用户登录状态: 客户端 cookie + server session
  会话一般跟踪用户,某段时间内用户多次访问网站,网站就可以确认用户的身份,因此需要在服务器跟客户端之间需要一个
   一一对应的关系。一个用户的所有请求就应该属于同一个回话,其他用户的属于其他回话【eg: 超市购物 】
网站一般使用的htp协议,http协议是无状态的,一旦数据交换完成,客户端跟服务器端的连接就会关闭,再一次通信就需要再
次建立一个新的连接,因此意味着服务器无法从连接上跟踪会话了

所以需要引入一种机制来弥补http状态协议的不足,一般使用cookie[客户端记录]+session[服务器端记录]
当程序为某个客户端的请求创建一个session的时候,先会检查这个请求里面是否包含了seeion的标识[ 一般 是sessionId ]
a: 如果检测到存在这个 sessionId ,那么服务器就根据这个sessioniD找回对应的信息
b: 没有就创建一个 session 并且生成一个对应的seesionId, 它的值应该是一个独立的,不能被重复的,
           找到规律的字符串防止被伪造数据,然后跟随返回的数据一起返回到客户端保存起来。
           保存这个seesionId的方式一般是采用cookie的方式,这样在交互的 时候浏览器自动的按照规则发送给服务器,在服务期
环境中,session一般存在内存中,当服务器进程被杀死或者停止的时候,session会被清空。如果设置了持久化保存的时候,服务器将
持久化session保存到了硬盘里,当再一次启动的是,便可以拿到这些信息。
express-session-cookie 解析 - Anikin - Anikin
 
对于session的持久化,一般有三种方式:
1: cookie: 将数据存储到cookie中,解析以后就可以获得
2: 内存: 使用内存当中的容器来存贮
3: radis+mongodb: 存到radis的数据库,这样子不同的进程都可以获取到session数据,cookie解析之后获取sessionid从radius中获取
相应的数据 。radius使用---为什么要使用radius
          mongodb的原理跟radis基本差不多。
express-session
express-session-cookie 解析 - Anikin - Anikin
 
推荐阅读:使用radius的几个理由
0 0