美文网首页
解读 Cookie

解读 Cookie

作者: 养乐多__ | 来源:发表于2019-07-17 22:32 被阅读0次

一、Cookie

我们知道,响应头中包括 Cookie 和 Cache-Control(缓存控制),下面就先来解读一下 Cookie。

1. 设置 Cookie

Cookie 是在响应头中设置的,格式为:Set-Cookie: <cookie-name>=<cookie-value>,例设置一个用户登录的 Cookie:

response.setHeader('Set-Cookie', `sign_in_email=${email}`)

2. Cookie 特点

  • 服务器通过 Set-Cookie 响应头设置 Cookie
  • 浏览器得到 Cookie 之后,之后每次请求(相同语言相同域名下)都会带上 Cookie
  • 客户端要在一段时间内保存这个 Cookie
  • Cookie 默认在用户关闭页面后就失效,后台代码可以任意设置 Cookie 的过期时间
  • Cookie 大小大概在 4kb 以内

3. 关于 Cookie 的几个问题

1. 用户在 Chrome 登录得到了 Cookie,用 Safari 访问,Safari 会带上 Cookie 吗?
答:不会。
2. Cookie 存在哪?
答:Windows 系统存在 C 盘的一个文件里。
3. Cookie 能造假吗?
答:Cookie 可以被篡改,开发者模式 —— Application —— Cookie.
4. Cookie 有有效期吗?
答:默认有效期 20 分钟左右,不同浏览器策略不同。后端也可以强制设置有效期。
5. Cookie 遵守同源策略吗?
答:也有,不过跟 AJAX 的同源策略稍微有些不同。
当请求 qq.com 下的资源时,浏览器会默认带上 qq.com 对应的 Cookie,不会带上 baidu.com 对应的 Cookie。
当请求 v.qq.com 下的资源时,浏览器不仅会带上 v.qq.com 的 Cookie,还会带上 qq.com 的 Cookie。
另外 Cookie 还可以根据路径做限制,但这个功能用得比较少。

4. Cookie 如何设置过期时间

max-ageexpires 都可以设置 Cookie 的过期时间。
max-age 设置的是一个时间段,而 expires 设置的是时间点。
例:设置 cookie 在 60 秒后过期:

document.cookie = "name=cookie; max-age=60"
// 或
var currDate = new Date()
currDate.setTime(currDate.getTime()+60*1000) 
document.cookie = "name=cookie; expires=" + currDate.toGMTString()

5. 如何删除 Cookie

max-age 设置为零或负数,即可将 cookie 删除。
expires 设置的时间内是 cookie 的有效期,将 expires 设置为比当前时间早的值,cookie 也会被删除。

document.cookie="name=cookie; max-age=0"
// 或
document.cookie="name=cookie; max-age=-1"

6. Cookie 存在的问题:

用户可以随意篡改 Cookie,把 Cookie 直接暴露给用户缺乏安全性,
可以用 Session 来解决这个问题。

相关文章

  • 常见的本地存储方式之Cookie

    关于cookie,前端必备HTTP技能之cookie技术详解写的非常详实,本文拟从实验的角度解读各种cookie的...

  • 解读 Cookie

    一、Cookie 我们知道,响应头中包括 Cookie 和 Cache-Control(缓存控制),下面就先来解读...

  • 全面解读HTTP Cookie

    今天webryan给team做了一个关于HTTP cookie的分享,从各个方面给大家介绍一下大家耳熟能详的Coo...

  • Cookie解读《精益创业》

    《精益创业》 这本书早有耳闻,也一直列入了书单中,这次在【每月阅读一本书计划】里看到小伙伴 Cookie对它的解读...

  • 记录用户的上次访问时间----Cookie

    Cookie的创建:Cookie cookie = New Cookie(Cookie name,Cookie v...

  • Cookie/Session

    Cookie 创建cookie Cookie cookie = new Cookie("name","aaa");...

  • js操作cookie

    JS操作cookie Jquery操作cookie 设置cookie 获取cookie 删除cookie 附件 j...

  • 了解HTTP Cookie

    Cookie 是什么 Cookie 的分类 如何设置 Cookie 如何读取 Cookie Cookie 的使用场...

  • jquery操作cookie

    需要引入cookie插件 创建cookie $.cookie('name','value') 创建 cookie,...

  • 前端必备HTTP技能之cookie技术详解

    HTTP cookie(也称为web cookie,网络cookie,浏览器cookie或者简称cookie)是网...

网友评论

      本文标题:解读 Cookie

      本文链接:https://www.haomeiwen.com/subject/xkrhlctx.html