- ① 记录用户登录状态方法(cookie、token、session)
- 1)这三个功能是干什么的:
- 2)区别
- session and cookie
- token
- ②前端安全XSS、CSRF
- cookie 和 token 都存放在 header 中,为什么不会劫持 token?
① 记录用户登录状态方法(cookie、token、session)
1)这三个功能是干什么的:
- 在前后端通信数据传输的过程中,有的涉及到用户权限的问题,这时候就需要这个三个工具
HTTP 协议是无状态的。但是随着 web 应用的发展,越来越多的场景需要标识用户身份。例如:单点登陆、购物车等等。而cookie、session 与 token,就是为了实现带有状态的“会话控制”
2)区别
cookie、 session与token的区别
- 一般cookie和session一起使用:cookie(在客户端记录状态)session:(在服务器端记录状态)
问题:如果web服务器做了负载均衡(服务器不同),那么下一个操作请求到了另一台服务器的时候session会丢失。- token:维持用户状态(前段与服务器之间存在跨域问题)
session and cookie
过程:
1、首先,客户端会发送一个http请求到服务器端
2、服务器端接受客户端请求后,建立一个session,并发送一个http响应到客户端,这个响应头,其中就包含Set-Cookie头部。
3、在客户端发起的第二次请求,假如服务器给了set-Cookie,浏览器会自动在请求头中添加cookie
4、服务器接收请求,分解cookie,验证信息,核对成功后返回response给客户端
- cookie
- session
session“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。相对cookie来说更安全(不用传输,不存在篡改和泄露),
token
定义:
token优点
- Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮*(即解决session要一直查询数据库,负载均衡的问题)。适用于项目级的前后端分离(前后端代码运行在不同的服务器下) 请求登录时
②前端安全XSS、CSRF
cookie 和 token 都存放在 header 中,为什么不会劫持 token?