【后端开发】直击痛点系列之——cookie、session、token、LocalStorage和SessionStorage。

本文深入探讨了Cookie、Session、Token、LocalStorage和SessionStorage的区别与应用场景。Cookie作为HTTP协议的一部分,存储在客户端,常用于身份验证。Session在服务器端存储用户信息,但跨服务器时会丢失。Token作为用户标识,可提高安全性。Cookie与Session在安全性、持久性和网络流量上有各自优劣。LocalStorage和SessionStorage提供了本地存储方案,前者持久化,后者会话结束即消失。文章还讨论了传统身份验证和基于Token的身份验证方式,以及关于这些技术的一些常见误解。
摘要由CSDN通过智能技术生成

Cookie

  1. cookie是http协议的一部分
  2. cookie存在客户端
  3. 通常使用 HTTP 协议规定的 set-cookie 头操作。
  4. 规范规定 cookie 的格式为 name = value 格式,且必须包含这部分。
  5. 每次请求浏览器都会将 cookie 发向服务器。
  6. cookie比较小,最大只能是4KB,相比较而言localStorage和sessionStorage就比较大。
  7. cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时, 按照一定的原则在后台自动把该cookie发送给服务器(浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器)
  8. 由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
  9. 路径与域一起构成cookie的作用范围。

path:表示 cookie 影响到的路径,匹配该路径才发送这个 cookie。

expires 和 maxAge:告诉浏览器这个 cookie 什么时候过期,expires 是 UTC 格式时间,maxAge 是
cookie 多久后过期的相对时间。 当不设置这两个选项时,会产生 session cookie(即会话cookie),session cookie 是 transient 的,当用户关闭浏览器时,就被清除。 一般用来保存 session 的 session_id。
secure:当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效。
httpOnly:浏览器不允许脚本操作 document.cookie 去更改 cookie。 一般情况下都应该设置这个为
true,这样可以避免被 xss 攻击拿到 cookie。

下面是一个简单的js使用cookie的例子:

用户登录时产生cookie:

document.cookie = "id="+result.data['id']+"; path=/";

document.cookie = "name="+result.data['name']+"; path=/";

document.cookie = "avatar="+result.data['avatar']+"; path=/";

使用到cookie时做如下解析:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值