session和cookie的区别

1,cookie的存储方式

key:value
http是无状态协议
无状态请求:请求1和请求2是没有联系的
如何记住某些用户?
<1>用户发起请求1
<2>服务器发现没有id,则给他分配一个id=1,并返回给浏览器
<3>浏览器将id保存到本地cookie中(安全机制:不能跨域访问)
<4>用户再发起请求,会带上cookie中的id=1
<5>服务器看id是1,取出1的信息

可在谷歌浏览器,application/cookies下查看cookie

2,session

django中的django_session表
session_key是服务器给浏览器返回的id
session_data将用户的信息(名称,密码)加密
expire_data过期时间

可以看到浏览器中的sessionid与django_session中的session_key是一样的
这样每次访问的时候,带着自己的session_key,服务器就知道是哪个用户了

django如何通过request拿到用户,request.user?
install_apps中的django.contrib.sessions,会去django_session表里,拿着session_key比对,找到session_data将其解密,就知道是哪个用户了

区别:
cookie是浏览器的本地存储机制,与服务器是没有关系的(键值对存在对应的域名下)
不安全,本地信息会被窃取

session是存储在服务器端的,把sesion(加密的字符串)发给用户,用户存在了cookie中,然后下次请求时将cookie中的信息,即session发给服务器,服务器通过sessionid就知道是哪个用户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值