• ① 记录用户登录状态方法(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给客户端

token跟sessionId的区别 token和session和cookie的区别_客户端

token跟sessionId的区别 token和session和cookie的区别_服务器_02

  • cookie
  • session

    session“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。相对cookie来说更安全(不用传输,不存在篡改和泄露),
token

token是什么CSRF跨站请求伪造

定义

token跟sessionId的区别 token和session和cookie的区别_服务器端_03


token跟sessionId的区别 token和session和cookie的区别_服务器端_04

token优点

  • Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮*(即解决session要一直查询数据库,负载均衡的问题)。适用于项目级的前后端分离(前后端代码运行在不同的服务器下) 请求登录时

②前端安全XSS、CSRF

token跟sessionId的区别 token和session和cookie的区别_服务器端_05

token跟sessionId的区别 token和session和cookie的区别_ui_06


token跟sessionId的区别 token和session和cookie的区别_服务器端_07

token跟sessionId的区别 token和session和cookie的区别_ui_08


token跟sessionId的区别 token和session和cookie的区别_ui_09


token跟sessionId的区别 token和session和cookie的区别_服务器端_10

cookie 和 token 都存放在 header 中,为什么不会劫持 token?

token跟sessionId的区别 token和session和cookie的区别_服务器端_11


token跟sessionId的区别 token和session和cookie的区别_服务器端_12

token跟sessionId的区别 token和session和cookie的区别_服务器_13