百科网

首页 > 生活常识 > 生活经验

生活经验

token和cookie的区别

生活经验佚名2023-03-22

token和cookie的区别如下

cookie 是 http 规范,token 是自定义传递的。

cookie 没有被浏览器存储,下一次请求时便会带上,而 token 需要自己存储在浏览器,下一次请求时再请求头中带上。

token 默认没有跨域限制。

token介绍

通常叫它令牌。最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位 哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库。

cookie介绍

Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联网时代的蓬勃发展,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态。于是,在浏览器发展初期,为了适应用户的需求技术上推出了各种保持 Web 浏览状态的手段,其中就包括了 Cookie 技术。

Token机制相对于Cookie机制的优势

支持跨域访问:Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输。

无状态(也称:服务端可扩展性):Token机制在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息,只需要在客户端的cookie或本地介质存储状态信息。

更适用CDN:可以通过内容分发网络请求你服务端的所有资料(如:javascript,HTML,图片等),而你的服务端只要提供API即可。

去耦:不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可。

更适用于移动应用:当你的客户端是一个原生平台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认证机制就会简单得多。

CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。

性能:一次网络往返时间(通过数据库查询session信息)总比作一次HMACSHA256计算 的Token验证和解析要费时得多。

打赏