cookies 和 session的区别

本文详细对比了Cookie与Session的工作原理及特性。介绍了Cookie如何在客户端保存数据,而Session则是在服务器端保存会话数据,同时分析了它们的安全性和运行机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Cookie:中文“小甜饼”,通常我们直接使用英文发音。
Session:中文通常译为“会话”。

Cookie的特性:

  1. 数据集中于客户端,保存在文本文件中。
  2. 服务器端不持有任何数据。
  3. 每次提交URL请求时同一域名的Cookie将按照一定的原则发送给服务器端。
  4. Cookie具有有效期,未指定有效期的Cookie将在浏览器关闭时失效。
  5. 失效的Cookie将被浏览器直接删除。
  6. 全局性,同一域名的Cookie保存在同一文件中(这时候可以通过设置Cookie的路径来加以区分)。

这些特性就决定了Cookie是:

  1. 数据不安全,内容可以被伪造。
  2. 运行机制无状态的——即每次提交均互不关联。
  3. 对服务器资源没有影响。

Session的特性是:

  1. 数据集中于服务器端。
  2. 客户端仅保留本客户端此次Session的识别码(Session ID)。
  3. Session ID默认使用Cookie保存。但是也可以使用其他方式传送,例如URL改写。
  4. 每次提交URL请求时需要将此Session ID提交给服务器,服务器根据Session ID检索数据并返回结果。

这些特性决定了Session是:

  1. 数据安全。用户无法自行修改。
  2. Session ID不安全。只要用合法的方式提交了正确的Session ID,那么服务器就会返回相应的结果,这就存在着被恶意盗用的可能,也就是所谓的“会话劫持”。
  3. 运行机制有状态——Session在服务器上的运行是持续性的。
  4. 对服务器性能有影响。

为了解决Session存在的问题,Session机制自身使用了一些方法:

  1. 默认失效时间。通常Session会被设置为如果在30分钟内没有活动即被判为失效。以此解决服务器资源占用过多的问题。
  2. 生成的Session ID是难以猜测的长随机字符串。

针对会话劫持,目前最安全的办法莫过于使用SSL,使用数字证书验证,被破解的可能性微乎其微。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值