乐趣区

关于session:Session-解决了什么问题

一、服务器怎么判断用户的登录状态?
1、简略分为这么几步:
  • 用户通过浏览器拜访网站,服务器承受到申请后,生成一个有时长限度的 机密口令 ,返回给用户,同时服务器也有备份了 机密口令;
  • 浏览器承受到 机密口令 并保留到本地;
  • 用户再次应用浏览器发出请求时,会取出 机密口令 一起发送给服务端;
  • 服务器承受到 机密口令 后,就开始在备份中寻找,有没有雷同的且没有过期的 机密口令。如果有,那么阐明用户曾经登录。

2、Session 与 Cookie
  • Session:是下面提到的 服务端 生成和存储 机密口令 的过程;
  • Cookie:是下面提到的 浏览端 存储和发送 机密口令 的过程;

二、具体实现过程
1、浏览器 怎么接管 服务器 生成的 机密口令

浏览器 和 服务器 之间是通过 HTTP 或 HTTPS 协定进行传输数据的,那么就在 HTTP 协定的 Header 减少一个字段用来传输 机密口令,这个字段就是 Set-Cookie,浏览器会主动保留此字段的数据。


2、服务器 怎么接管 浏览器 回传的 机密口令

浏览器 会在 HTTP 协定的 Header 减少一个字段用来发送 机密口令 ,这个字段就是 Cookie,服务器通过此字段来接管 机密口令 并进行下一步操作。


3、怎么保障其传输的安全性?

为了减少安全性,就给这个 明码口令 减少了很多属性,譬如:Secure、HttpOnly、Domain、Path 等,通常咱们把 明码口令 + 属性 这个格局的数据称之为 Cookie。Cookie 应用有其相应的规定,详情看这里!


三、怎么应用 session 到我的项目中?

能够通过现有的一些 库 来减少 session 到我的项目中,上面举荐几个不同场景下的 session 库:


1、Redis
  • Redis 官网
  • Redis 中文教程
  • Java 应用 Redis
  • PHP 应用 Redis

2、express-session

Node.js 我的项目中,如果应用了 express 开发的 web 服务,能够应用他来实现 session。

  • express-session – github
  • express-session – npm

四、参考文档
  • Session 解决了什么问题?
退出移动版