网站提供的接口有两种:
- 不需要登录就可以访问,比如:登录接口
- 需要登录后才能够访问,比如:个人信息
HTTP协议无状态问题:
- http 协议是 无状态 的,也就是:服务器不知道两个请求是不是同一个用户发过来的;比如:有两个请求,一是登录请求,二是登录后访问个人资料,但是由于无状态的影响,所以,服务器不知道这两个请求是同一个人发送过来的。
- 因为这种问题的存在,所以,我们需要解决:http协议无状态问题,解决方案叫做:状态保持。
Web端是如何状态保持的??
- cookie 和 sessionid
- cookie的特点:cookie会伴随每次请求,在浏览器和服务器之间来回传递;
原理图如下:
非 web端如何状态保持??
- 非 web 端,没有 cookie ,因此不能用 cookie + sessionid 这种机制实现状态保持;
- 但是我们可以借鉴这个实现思路,自己模拟 cookie 和 session 的机制:token机制(令牌机制);
- react-native,不是 web端;
原理图如下:
综述:状态保持的解决方案主要有两种:
- cookie 和 session
- token 令牌机制