session、cookie、token对比

一、cookie
cookie 指的是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成发送给浏览器,浏览器把cookie以key value形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的(一般限制为20个)。

二、session
为了区分请求的来源,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了,客户端一般将这个标识保存到cookie。
服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失

三、token

特点

1.无状态、可扩展(无须存在cookie或session)
2.支持移动设备
3.跨程序调用
4.安全(每个token都有单独的签名加密,不易破解)

一般请求过程:

1.用户通过用户名和密码发送请求。
2.程序验证。
3.程序返回一个签名的token(可设置有效时间) 给客户端。
4.客户端储存token,并且每次用于每次发送请求。
5.服务端验证token并返回数据。(校验成功则放行,失败则提示错误信息)

猜你喜欢

转载自blog.csdn.net/weixin_43665271/article/details/110469380