1
2
3
4
5
6
7
8
title: cookie、session、token
date: 2026-01-26 15:53:00
categories:
- Java
tags:
- Java
- 网络
- 通信

cookie、session、token

cookie
服务端发给客户端,交给客户端保存的数据,每次请求,客户端带上这些数据,服务端就读取这些数据,鉴别身份。
完全由客户端存储,和域名绑定,且不可跨域。
数据大小一般有限制。
容易被伪造,且客户端清除数据就丢失了

session
服务端将客户端的信息保存在服务端,然后将一个sessionId传给客户端,客户端保存起来,下次请求携带sessionId,服务端就通过id找到客户端的身份数据。
真正的数据存储在服务端,数据安全,且数据格式由服务端自定义。
sessionId一般客户端通过cookie的形式存储起来,也有可能通过URL拼接来传递(防止浏览器不支持cookie)。

token
将数据进行加密后,交给客户端存储,客户端每次请求携带这个数据,服务端解密,读出数据。
最常见的实现就是JWT令牌
客户端一般也是通过cookie存储
支持跨域,只要数据能正确解密出来就没问题

总结
可以看到,这三个东西并不是对立的,一般cookie作为底层技术支撑session和token的实现,而session和token的区别主要就在于,session是把数据存在服务端,而token是把数据加密起来交给客户端存储。