Cookie和Session

我们在网页上登陆之后,可以很久都不用再次登录,比如哔哩哔哩、CSDN

但是http是无状态的,关闭网页后,再来服务器压根不认识你

所以为了客户端更好地体验,有了Cookie和Session

Cookie

cookie是以键值对(key-value)表示

cookie有2种存储方式,一种是会话性,一种是持久性。

会话性:如果cookie为会话性,那么cookie仅会保存在客户端的内存中,当我们关闭客服端时cookie也就失效了。
持久性:如果cookie为持久性,那么cookie会保存在用户的硬盘中,直至生存期结束或者用户主动将其销毁。

Cookie就是一些数据,用于存储服务器返回给客服端的信息,客户端进行保存。在下一次访问该网站时,客户端会将保存的cookie一同发给服务器,服务器再利用cookie进行一些操作。利用cookie我们就可以实现自动登录,保存游览历史,身份验证等功能。

过程:

浏览器向服务器端发起HTTP请求

服务器进行Set-Cookie(Cookie有名和值两个属性,服务器将两个属性里的内容填充完整)

服务器将Cookie发送给浏览器之后,浏览器保存

往后浏览器每次的请求中都自动附上Cookie(即Cookie是存储在浏览器的数据)

但Cookie很不安全(打开浏览器就能看到)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z790D37j-1658278651488)(C:\Users\pon18\AppData\Roaming\Typora\typora-user-images\image-20220719214036577.png)]

Session会话

浏览器访问服务器是会话的开始,会话结束时间比较模糊,所以服务器设置时间(会话结束的时间)和唯一的ID(Session ID)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqhLtspU-1658278651491)(C:\Users\pon18\AppData\Roaming\Typora\typora-user-images\image-20220719214012917.png)]

服务器端收到用户名及密码之后进行验证发现是正确的

会创建一个Session ID和会话结束时间,开辟一块内存用来保存服务器端所有的session

设置Cookie,将Session ID加入到Cookie里,再将会话结束时间设置为Cookie的有效期

每个session都会有一个唯一标识session ID,根据客户端传过来的cookie中的session ID,找到对应的服务器端的session。

为了防止服务器端的session过多导致内存溢出,web服务器默认会给每个session设置一个有效期, (30分钟)若有效期内客户端没有访问过该session,服务器就认为该客户端已离线并删除该session。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值