Cookie和Session的区别

由于HTTP请求时无状态的,也就是说,即使第一次和服务器连接并登陆成功后,第二次请求连接,服务器仍然不知道当前请求的用户是哪个。

cookie:

cookie的出现就是为了解决这个问题。第一次登录后,服务器返回一些数据(cookie)给浏览器, 然后浏览器保存在本地。当该用户第二次请求时,浏览器就会自动把上次请求后存储的cookie一起发给服务器,服务器就能判断当前用户是哪个了。当用户关闭浏览器后,cookie将被清除。

session:

也是用于存储和用户相关的信息。
第一种方式:通过cookie存储一个session_id,然后具体的数据保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,用户下一次请求时就会携带该session_id,服务器根据session_id在session库中获取用户的session数据,这样就能判断用户是哪个,以及之前的状态信息。这种专业术语叫server side session。
第二种方式:将session数据加密,存储在cookie中。这种专业术语叫client side session。flask采用的就是这种方式。

区别:
  • 安全来说,session更安全,不容易被窃取,cookie存储在客户端本地浏览器,session存储在服务端。
  • 保存内容的类型来说,cookie只是保存字符串,而session可保存所有数据类型。
  • 保存内容的大小来说,cookie存储数据量有限,单个cookie保存的数据不能超过4KB,用于存储少量数据,而session没有限制。
  • 性能来说,session存储在服务端,当访问增多,会比较占用服务器的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值