菜鸡每日一面系列打卡38天
每天一道面试题目
助力小伙伴轻松拿offer
坚持就是胜利,我们一起努力!
题目描述
Cookie和Session有什么区别与联系?
题目分析
Cookie和Session的区别与联系历来是面试考查的热点,该题频繁出现在阿里巴巴、字节跳动等大厂的面试过程中。既然是热点,回答就更要出彩,一道接近于开卷考试的题目,如果答得不好是很可能对面试结果有决定性作用的。
那么,如何回答才能出彩呢?一句话概况就是,要有自己独到的见解,不能人云亦云。要做到这一点并不容易,需要深入理解其背后的原理,而不是只靠背题。
要想搞清楚两个事物的区别与联系,首先需要了解这两个事物的概念。接下来,随菜鸡一起去看看吧!
题目解答
Session是一种抽象的概念,而不是一种具体的实现,只要能建立起user agent与server之间一对一交互的,就可以称之为Session,这意味着它可以有很多种实现。网上很多文章对Session的描述局限在一种通用的实现上,这在一定程度上来说是一种误导。
Cookie作为HTTP协议中header头的一个字段,是一个具体的存在,它可以认为是广义Session的一种实现方式。
而我们日常所说的Session,实际上是借助Cookie及服务器存储的一种会话实现。从这个层面出发,二者关系如下:
Cookie存储在客户端(浏览器),而Session存储在服务端。这一条也决定了Session相较Cookie来说更安全。
Session的运行依赖Session id,而Session id是存在Cookie中的,如果浏览器禁用了Cookie,Session也会失效。
Cookie保存数据<=4KB,一个站点最多保存20个Cookie,而Session并没有上限,取决于服务器的能力和具体的使用场景。
Cookie支持跨域名访问,Session不支持跨域名访问。
Cookie可以设置为长期有效,而Session会随会话窗口关闭而失效。
以上便是菜鸡对Cookie和Session之间区别的一些总结,供大家参考。
相关链接
学习 | 工作 | 分享
长按关注“有理想的菜鸡”
只有你想不到,没有你学不到