session、cookie、token的区别?
session、cookie、token的区别?
发布时间:2025-09-02 14:26:19
session、cookie、token的区别?
共同的:
它们三个是用来解决HTTP协议的无状态性,无状态性就是:客户端每次和服务器端进行通信,都需要重新建立连接 。就比如说:某个浏览器向服务器发送了一个请求,服务器响应了;后面这个浏览器又向服务器发送了一个请求,服务器依然会响应,但是服务器并不知道发起这两个请求的是同一个浏览器。
区别:
cookie 和 session 一般都是结合起来使用,cookie在客户端,session在服务器端。客户端发送了一个请求到服务器端(例如登录请求),服务器端接收到请求后,会创建出一个session会话,接着响应给客户端,并在响应头中设置了一个 Set-Cookie。客户端拿到响应之后,如果检测到响应头中有Set-Cookie,那么下次浏览器就会在请求头中自动携带 cookie 。下一次服务端接收到请求的时候,通过验证 cookie 信息就能知道用户的身份。
token 是一段被加密后的字符串,通常使用 用户唯一标识(比如id)、时间戳、签名以及一些其它参数加密而成。
token认证的过程是这样的:首先,客户端发起登录请求,比如用户输入用户名和密码后登录。服务端校验用户名和密码后,将用户 id 和一些其它信息进行加密,生成 token;然后服务端将 token 响应给客户端;客户端收到响应后将 token 存储下来。等到下一次发送请求后需要将 token 携带上,比如放在请求头中。服务端校验token,校验通过则正常返回数据。
两种认证方式的比较:
cookie 和 session不能跨域,token可以跨域