session和cookie

一:什么是Session?

Session是一个会话级别的数据存储,数据保存在服务器端,在整个会话过程中,保存在session中的数据都会存在;session会在会话结束或者浏览器关闭时或者是session有效期到期时失效;

Cookie是服务器发送到客户浏览器,并保存在本地的数据,它会在浏览器下次访问服务器时,被一块带过去;通常会用来告知服务器该请求是否来自同一个浏览器,记录用户是否登录等;

二:为什么需要Cookie和Session?

因为浏览器是无状态的(http协议是无状态),浏览器并不知道是谁在跟服务器联系,这个时候就需要一个机制来告诉服务器,是谁在操作浏览器,操作人是否登录等,要实现这个机制,就需要cookie和session配合完成;

当用户第一次访问服务器时,服务器需要用到sesson时,可以选择创建/生成session,然后服务器会给客户端响应中携带sessionId,浏览器接收到这个sessionId后,保存在cookie中,同时cookie记录此sessionId属于哪个域名;

用户再次访问服务器时,请求会自动判断此域名下是否用cookie信息,如果存在cookie,则将cookie发送给服务器,服务器解析cookie拿到sessionId,然后根据sessionId从sesson容器中查询到对应的session信息,如果能找到session信息,则可以执行后面的操作,如果没有则说明没有登录或者登录已经失效;

每个不同用户的请求,它得到的session是不一样的!

sessionId是联系cookie和session的桥梁,很多系统也是通过这个来判断用户是否登录;

三:Cookie和Session的区别?

存储位置不同:cookie保存在客户端浏览器,session保存在服务器端;

存取方式不同:cookie只能保存ASCII(是基于拉丁字母的一套电脑编码系统),session能保存任意数据类型;

这意味着cookie不能储存中文字符串,而session可以储存对象或者是中文字符串等任意数据类型

有效期不同:cookie中的数据可以长时间存在,session会在会话结束或者浏览器关闭时或者是session有效期到期时失效;

数据安全性不同:因为cookie是保存在浏览器中的,数据安全性相对较差,容易被窃取;session是存储在服务器端的,安全性相对较高,一般不会无法被窃取;

存储大小不同:cookie一般保存的数据大小不会超过4K;而session理论上来说没有限制;

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值