cookie 和 session详解

1.cookie

cookie是在浏览器端解决的方案,将登陆认证之后的用户信息保存在本地浏览器中,后面每次发起http请求,都自动携带上该信息,就能达到认证用户,保持用户在线的作用。
一般的应用场景:免登陆(remember me)

1.浏览器想服务器发送http请求+用户认证信息
2.服务器认证成功,生成cookie
3.服务器向浏览器发送http响应+set-cookie(服务器返回的响应头set-cookie:用户信息)
4.浏览器提取并存储cookie信息与内存或磁盘(浏览器自动保存用户信息到本地硬盘)
5.浏览器向服务器发送http请求+已认证的cookie(每次请求(相同的域名)时,自动携带cookie:用户信息)
6.服务器解析cookie,获取客户端相关信息
7.服务器向浏览器发送http响应(需要身份认证信息才能访问)

2.session

概念:会话:登录后,注销前且未超时,都属于一次会话

作用:登录时,服务端保存一个用户的会话(session),访问敏感资源的时候,校验是否有session。服务器通过相关算法生成唯一值,作为“通行证”,与敏感资源是映射关系。客户端的后续请求,每次都携带这个“通行证”,进而在服务器端进行验证,达到状态保持的效果。

1.浏览器向服务器发送http请求+用户认证信息
2.服务器认证成功,生成sessio以及sessionid
3.服务器向浏览器发送http响应+set-Cookie
4.浏览器提取并存储sessionid到cookie(内存或硬盘)
5.浏览器向服务器发送http请求+sessionid
6.服务器通过id,获得客户信息,从而达到认证的目的
7.服务器向浏览器发送http响应(需要认证身份信息才能访问)

后端返回通行证,前段请求携带通行证,实现的方式没有限制,一般是:

1.自己写代码(双方约定好数据存取规则即可,但是比较麻烦)
2.cookie(比较简单,浏览器自带的功能)

3.cookie和session的区别

  • cookie以文本形式存储在浏览器中,而session存储在服务端

  • 因为每次发起http请求都需要携带有效cookie信息,所以cookie一般都有大小限制,以防增加网络压力,一般不超过4k

  • 可以轻松访问cookie值,但无法轻松访问会话值,因此session方案更安全。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值