Cookie
cookie是由服务器生成,发送并保存在客户端浏览器,在下一次访问的时候带上cookie访问。优点是不占用服务器内存,但是容易被恶意篡改,不安全。
Session
字面上看就是会话。和cookie‘相似,在用户访问服务器时服务器会给每一个访问的客户端分配一个‘身份识别号’,但是不同于cookie的是这个身份识别号服务区会存下来放在服务区端,用于下次客户端访问的时候进行校验,在用户访问完后session就会被销毁。相对于cookie来说安全性高一点,但是session也有缺陷就是占内存,服务区做了负载均衡,而且如果用户操作请求到另一台服务器的时候session容易丢失。
Token
就因为cookie的不安全性和session的差延展性,所以引出了token。
token是用来验证用户的身份的,通常称它为“令牌”,只要有令牌就通行无阻。一个最简单的token可以理解为由id、time、sign(签名)组成。这里的签名是一个比较复杂的算法生成的一个字符串,理解为秘钥。用户在第一次访问的时候生成这个秘钥返回给用户,服务器也会存一个在服务器,在下次访问的时候直接进行对比token,一致给方行,不一致,卡住。
token比session的安全性好一些,因为每个请求还加了防监听的签名。session认证只是将这个身份识别号存储在session中,每次用这个号来访问的时候服务器就认为你有这权限。