一、服务器怎么判断用户的登录状态?
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 解决了什么问题?