【计算机网络】Cookie、Session、Token之间有什么区别?
大家在日常使用浏览器时可能会遇到:是否清理Cookie?这个问题。
那么什么是Cookie呢?与此相关的还有Session、Token这些。这两个又是什么呢?
本文将对这三个进行讲解区分,如果对小伙伴有帮助的话,也请点赞、评论、收藏,谢谢~
Cookie、Session 和 Token 统称为 身份认证与状态管理机制(或 认证凭证)
是一种会话控制技术。
用于跟踪用户身份和维持交互状态,解决HTTP无状态问题。
1.Cookie:
- Cookie 是服务器端通过HTTP响应头
Set-Cookie
发送到浏览器的一小段数据(键值对),浏览器会存储它,并在后续请求中自动通过Cookie请求头回传给服务器。
特点:
- 存储位置:浏览器端(可设置HttpOnly 防JS访问)
- 安全性:易受CSRF攻击(需配合SameSite属性防御)
- 生命周期:可设置过期时间(Expires或Max-Age)
2.Session:
- Session是服务器端维护的用户会话状态(如用户ID、权限等),通常通过Session ID(存储在客户端的Cookie中)关联客户端。
特点:
- 存储位置:服务端(Session数据) + 客户端(Session ID)。
- 安全性:比纯Cookie安全(敏感信息不直接暴露)。
- 扩展性:需服务端存储,**分布式系统中需共享Session(如用Redis)
3.Token:
- Token是无状态的凭证(如JWT),包含用户信息和签名,由服务器签发,客户端
存储(通常为LocalStorage或Cookie)并在请求时携带(如Authorization头)。
- 存储位置:客户端(LocalStorage/Cookie)。
- 安全性:需防XSS攻击(LocalStorage)或CSRF攻击(Cookie)。
- 无状态性:服务端无需存储Token,适合分布式系统
看完之后,小伙伴们应该对Cookie、Session、Token有了更深入的了解了吧,希望可以点赞、评论、收藏,我们一路同行,欢迎大佬多多指教,谢谢~