cookie和session和token的区别

本文介绍了Cookie、Session和Token三种常见的身份验证机制。Cookie是存储在客户端的安全机制,但存在被篡改的风险;Session存储在服务器,提供更安全的用户状态管理,但随着用户增多可能增加服务器负担;Token通过加密算法和密钥确保数据安全,减轻服务器压力。理解这三者的区别有助于提升应用的安全性和效率。
摘要由CSDN通过智能技术生成

cookie和session和token的区别

今天重新复习了一下cookie和session与token,所以记录一下吧。

cookie

客户端的安全机制,浏览器第一次访问服务器时由服务器返回颁发的认证证书,并且保存在浏览器中,大小不超过4kb,默认有效期是永久,除非手动删除,作用是用来存储用户信息。在没有cookie以前,网页刷新一次就得重新登录一次,于是为了提高网页交互得体验便有了cookie。Cookie是一个文本信息用来记录该用户状态,当浏览器再请求该网站时,浏览器把请求的网址和
Cookie一起提交给服务器。服务器就会核对检查该Cookie,以此来辨认用户状态,从而来确定用户是否需要重新登录(如果你能够截获某个用户的cookie变量,然后伪造一个数据包发送过去,那么服务器还是 认为你是合法的。所以,使用cookie被攻击的可能性比较大。)。由于cookie是存储在客户端的,不在服务器端存储,所以会有一些风险。例如:别人拷贝你的cookie,用你的身份认证登录你的账号等。为了避免这样的情况,便有了session。

session

服务器的安全机制,每次浏览器访问服务器由服务器生成session保存在服务器中,然后返回sessionID至浏览器,当需要验证用户身份时,就将sessionID自动加载到请求中发送给服务器,当sessionID失效时,会返回新的sessionID,sessionID的默认有效期时30分钟,可以在后台代码中修改有效期,没有大小限制。有了session之后,客户端就不存储session,而是在服务器上面存储。每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加(在内存中运行)。再后来为了避免服务器内存的消耗便出现了token。

token

服务器的安全机制,主要是解决了session对于服务器资源占用过大的问题,服务器不再存储session,而是存储一种加密算法,一般由userid+密匙组成。这样子是在客户端存储,通过加密算法和密匙制造一个签名,这个签名和数据一起作为token , 由于密钥别人不知道, 就无法伪造token了。

个人理解

由于cookie存储在本地并且是由文件形式一起提交给服务器就会有被拷贝和抓取数据包等风险。于是为了避免,则有了session,session存储在服务器上面,并且是通过http请求头(https加密)一起提交服务器,比较安全,但是,用户同时较多时服务器负担大。于是有了token,token通过算法和密匙(类似对暗号)的形式避免数据被修改(修改后算法和密钥算的结果与原来不一样)。
以上是我个人的一些理解,如有不对,多多指出。

  • 7
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篮不住的十三。

你的鼓励是我最大的动力啊~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值