面试常考--cookie和session的区别
⾯试常考--cookie和session的区别
浅谈Cookie*
⼀.什么是Cookie
HTTP协议本⾝是⽆状态的,即服务器⽆法判断⽤户⾝份。Cookie实际上是⼀⼩段⽂本信息(key-value格式)。客户端向服务端发起请求,如果服务器需要记录该⽤户状态,就使⽤response向客户端浏览器颁发⼀个Cookie,客户端浏览器会把Cookie保存起来,当浏览器再请求该⽹站时,浏览器把请求的⽹站连同该Cookie⼀起提交给服务器,服务器检查该Cookie,以此来辨认⽤户状态。
类似于,我们去银⾏办理储蓄业务,第⼀次给你办了张银⾏卡,⾥⾯存放了⾝份证、密码、⼿机等个⼈信息,当你下次再来的时候,银⾏机器能识别你的卡,从⽽能帮你办理业务。
⼆.Cookie机制(会话跟踪机制)
当⽤户第⼀次访问并登录⼀个⽹站时,Cookie的设置以及发送会经历以下4个步骤:客户端发送⼀个HttpRequest请求到服务器–服务器发送⼀个HttpResponse响应到客户端,其中包含了set-Cookie的头部–客户端保存Cookie之后向服务器发送请求时,HttpRequest请求包含⼀个Cookie的头部–服务器返回HttpResponse响应数据。
三.总结Cookie的特点
1、cookie是在服务端创建
2、cooki是保存在浏览器这⼀端
3、cookie的⽣命周期可以通过 cookie.setMaxAge(2000);
(如果不设置⽣命周期,cookie的⽣命周期当浏览器关闭时就消亡)
4、cooki可以被多个浏览器共享
光棍节是几月几日几号
5、⼀个web应⽤可以保存多个cookie。但保存在同⼀个cookie⽂本在客户端浏览器下。
6、cookie存放时候是以明⽂⽅式存放,因此安全性较低,可以通过加密后存放。
7、每次请求会携带与当前服务相关的键值对数据,cookie明⽂显⽰数据,⽤户可以知道cookie,数据存储在浏览器中容易被暴露,被获取,不存敏感数据
浅谈session
⼀.什么是session
Session 是存放在服务器端的,类似于Session结构来存放⽤户数据,当浏览器 第⼀次发送请求时,服务器⾃动⽣成了⼀个Session和⼀个Session ID⽤来唯⼀标识这个Session,并将其通过响应发送到浏览器。当浏览器第⼆次发送请求,会将前⼀次服务器响应中的Session ID 放在请求中⼀并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进⾏对⽐,到这个⽤户对应的Session。
⼀般情况下,服务器会在⼀定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将⽤户的⼀些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使⽤数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。⼀般还是采取前⼀种⽅式,以减轻服务器压⼒。
⼆.Session的客户端实现形式(即Session ID的保存⽅法)
⼀般浏览器提供了两种⽅式来保存,还有⼀种是程序员使⽤html隐藏域的⽅式⾃定义实现:
[1] 使⽤Cookie来保存,这是最常见的⽅法,本⽂“记住我的登录状态”功能的实现正式基于这种⽅式的。服务器通过设置Cookie的⽅式将Session ID发送到浏览器。如果我们不设置这个过期时间,那么这个Cookie将不存放在硬盘上,当浏览器关闭的时候,Cookie就消失了,这个Session ID就丢失了。
如果我们设置这个时间为若⼲天之后,那么这个Cookie会保存在客户端硬盘中,即使浏览器关闭,这个值仍然存在,下次访问相应⽹站时,同 样会发送到服务器上。
[2] 使⽤URL附加信息的⽅式,也就是像我们经常看到JSP⽹站会有aaa.jsp?JSESSIONID=*⼀样的。这种⽅式和第⼀种⽅式⾥⾯不设置Cookie过期时间是⼀样的。
[3] 第三种⽅式是在页⾯表单⾥⾯增加隐藏域,这种⽅式实际上和第⼆种⽅式⼀样,只不过前者通过GET⽅式发送数据,后者使⽤POST⽅式发送数据。但是明显后者⽐较⿇烦。
三.总结session的特点
史上最贱小游戏攻略
1、session是存放在服务器的内存中。
2、⼀个⽤户的浏览器。,独享⼀个session域对象
3、session中属性默认的⽣命周期是30分,可以通过html⽂件来修改
4.服务器能够为不同的浏览器提供不同的session,
因为每个浏览器取访问web站点的时候,如果发出的http请求没有带JSESSIONID头就会⾃动给你创建⼀个并返回
冬日黄昏时车来人往的街头600字5.session开启需要依赖数据库,因此需要确定是否存在与session相关的表
教育教学工作总结>窅娘cookie与session的区别:
1.存储的位置不同:cookie数据保存在客户端,session数据保存在服务器端。session存储的数据⽐较安全。
服务器也可以通过URL重写的⽅式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁⽤,则服务器可以⾃动通过重写URL的⽅式来保存Session的值,并且这个过程对程序员透明。
可以试⼀下,即使不写Cookie,在使⽤Cookies();取出的Cookie数组的长度也是1,⽽这个Cookie的名字就是JSESSIONID,还有⼀个很长的⼆进制的字符串,是SessionID的值。
注册个体工商户2.存储的数据类型不同:两者都是key-value结构,但针对value的类型是有差异的。Cookie:value只能是字符串类型,session:value是object类型。
3.存储的数据⼤⼩限制不同:cookie⼤⼩受浏览器的限制,很多是4k的⼤⼩,session理论受内存的限制
4.⽣命周期的控制:cookie的⽣命周期当浏览器关闭的时候就消亡了
cookie的⽣命周期是累计的,从创建时就开始计时,30min后cookie⽣命周期结束
session的⽣命周期是间隔的,从创建时开始计时如在30min内没有访问session,那么session⽣命周期就被销毁

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。