cookie、session、token
- http 是无状态的
- 通过 cookie 在客户端记录状态
- 通过 session 在服务器端记录状态
- 通过 token 方式记录状态
- 存在跨域问题推荐使用 token ,没有跨域问题推荐使用 cookie 或 session
token
一个 token 就是一些信息的集合;
无状态、可扩展、支持移动设备、跨程序调用、安全;
在 token 中包含足够多的信息,以便在后续请求中减少查询数据库的几率;
token 值是是保证登录成功后唯一身份令牌。
cookie
浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能;
服务器生成,发送给浏览器,浏览器下次请求时带给服务器;
cookie 中存放着一个 sessionID ,请求时会发送给服务器;
每个域的 cookie 数量是有限。
session
代表服务器与浏览器的一次回话过程,这个过程是连续的,也可以时断时续;
session 因为请求而产生;
服务器使用 session 把用户的信息临时保存在了服务器上;
这种用户信息存储方式相对cookie来说更安全;
session 的创建与使用总是在服务端,浏览器从来都没有得到过session对象;
session 是一种 http 存储机制,目的是为武装的 http 提供持久机制。
cookie 与 session
cookie 数据存放在客户端,session 数据存放在服务端;
cookie 不是很安全,且存放数据大小有限;
session 一定时间内保存在服务器上,当访问增多,占用服务器性能。
cookie 与 token
cookie 是不允许跨域访问的,但是 token 支持跨域访问,前提是传输的用户认证信息通过 HTTP 头传输。
session 与 token
作为身份认证, token 安全性比 session 好。