Cookie与Session的异同

引子: 之前看到很多面试题都涉及到Cookie和Session,我对其也是一知半解。趁着今天,我捋一捋思路。
  • Cookie:在网站中,http请求是无状态的。也就是说即使你之前和服务器连接成功,并且登录了,但是下一次在请求的时候,服务器还是不知道请求的是哪个用户。Cookie就是服务器储存的一些数据,服务器将Cookie发送给浏览器,然后浏览器保存在本地,然后下一次用户发送请求的时候,就把之前存储的cookie数据发送给服务器,服务器然后就知道是哪个用户了。
  • Session:称为会话信息,位于web服务器中。当请求http地址时,将传递到web服务器并与访问信息匹配,当关闭网站时就表示回话已经结束,网站无法访问该信息了,所以无法保存长久数据。Cookie是存储在本地浏览器,而Session存储在服务器。
    存储在Session中数据会更加安全,但是会占用服务器的资源
  • Session与Cookie结合使用:
    目前大多数的应用都是用 Cookie 实现Session跟踪的。第一次创建Session时,服务端会通过在HTTP协议中反馈到客户端,需要在 Cookie 中记录一个Session ID,以便今后每次请求时都可分辨你是谁。有人问,如果客户端的浏览器禁用了 Cookie 怎么办?建议使用URL重写技术进行会话跟踪,即每次HTTP交互,URL后面都被附加上诸如 sid=xxxxx 的参数,以便服务端依此识别用户。
  • 总结:
  1. Cookie在客户端(浏览器),Session在服务器端
  2. Cookie安全性一般。应将重要信息放在Session中
  3. 单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie
  4. Session保存在服务器上,因为当访问增多时,会较大地占用服务器的性能。考虑到减轻服务器性能方面,应适当适时使用Cookie
  5. Session的运行依赖session ID,浏览器第一次请求服务器时,服务器会生成一个sessionId,并返回给浏览器,这个sessionId会被保存在浏览器的会话cookie中,因此如果浏览器禁用了Cookie,Session也会失效
  6. 用户验证场合一般会用Session。因此,维持一个会话的核心就是客户端的唯一标识,即Session ID。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值