美文网首页
说说HTTP Cookie

说说HTTP Cookie

作者: zhCN_超 | 来源:发表于2017-07-16 10:52 被阅读19次

2016/07/02
粗略整理一下cookie操作。

是什么

它是服务器发送到浏览器并保存在浏览器中的一块数据,是浏览器的存储数据的一个机制,它随每一次HTTP请求传递至服务器,所以可以用来存储一些验证信息,比如token等。
用脚本可以以生成,也可以访问,它挂在document对象上:

var _cookie = document.cookie

有哪些属性

// 以下演示 cookie 对象有哪些属性
// 这是在浏览器控制台显示的字段名,实际设置的时候全部小写即可
var _cookie = {
  Name, // 键
  Value, // 值
  Domain, // 生效的域名
  Path, // 生效页面路径,相对于 Domain
  Expires/Max-Age, // 生效时间,默认值为 Session
  Size, // 大小,单位 Byte,不特别设置
  HttpOnly, // true 则禁止 JS 读取
  Secure // 是否采用 HTTPS 传输
}

注意点

操作

脚本操作cookie只跟HTML文件位置有关系,与脚本文件从哪里引入无关。

Expires/Max-Age

  • 默认值为Session,随着浏览器关闭而删除,注意是浏览器关闭,不是标签页关闭
  • 否则,值为Date类型,失效则不随HTTP上传至服务器,而且无法自动删除

Domain

默认值为当前页面所在的域名。

域名

  • .com顶级域名
  • baidu.com一级域名
  • www.baidu.com二级域名
  • map.baidu.com二级域名

跨域

百度域名为:www.baidu.com
百度地图域名为:map.baidu.com
百度翻译域名为:fanyi.baidu.com
不同域名下设置的cookie无法相互访问,除非将cookie的属性domain设置为一级域名.baidu.com(注意最前面的点)

Path

为当前HTML文件在服务器的路径。

举个“栗子”

  • A --- 网址www.baidu.com/test,在这个HTML页面的脚本中设置的cookiepath属性的值为/test
  • B --- 网址www.baidu.com/test/page,在这个HTML页面的脚本中设置的cookiepath属性值为/test/page

B 中脚本只可以读取以下页面中设置的cookie

  1. /test/page
  2. /test
  3. /

再注意

不同path下可以设置相同名字的cookie

HttpOnly

这个属性的值一般在服务器设置,设置为true,这样在脚本中无法读取。

Secure

见下文设置。

怎么设置

最简单

在当前页面设置一个名字为token,值为123cookie

document.cookie = 'token=123';

设置其他属性

方法就是在上一步的基础上,加上;属性名=属性值

var d = new Date('2999-01-01');
document.cookie = 'token=123;expires=' + d.toGMTString();

所有属性设置了不正确的值,都会导致cookie不生效。
另外,如果属性值为中文,需要被十六进制的转移序列替换:

var userName = '反恐小柒';
document.cookie = 'username=' + encodeURIComponent(userName);

再另外,secure没有值:

document.cookie = 'token=123;secure';

注意

对同一个名字的cookie设置,后面的值覆盖前面。

怎么获取

// 比如已经设置了两个 cookie
// key1=1
// key2=2
console.log(document.cookie); // key=1; key2=2

注意;号后的空格。

怎么删除

等同你设置这个cookie的代码,只是将expires的值设置为过去的某个时间即可。

资源

详细文档:HTTP cookie
操作库:js-cookie

相关文章

  • 说说HTTP Cookie

    2016/07/02粗略整理一下cookie操作。 是什么 它是服务器发送到浏览器并保存在浏览器中的一块数据,是浏...

  • Web存储

    Cookie HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的...

  • 理解cookie、localStorage、sessionSto

    一、cookie 参考自MDN:HTTP cookies 概念 HTTP cookie也叫web cookie或浏...

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

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

  • Http Cookie

    在APP开发中,cookie也开始变的越来越重要了。为了更好的切换,注销和登录账户,就必须熟悉cookie的用法。...

  • [HTTP] Cookie

    可以笼统的将cookie分为两类:会话cookie和持久cookie会话cookie是一种临时cookie,它记录...

  • HTTP cookie

    一个 HTTP cookie 是服务端传给客户端浏览器的一小部分数据,可为无状态的HTTP协议提供前后请求间的上下...

  • HTTP cookie

    HTTP cookie 什么是cookie 因为HTTP的无状态特性,服务器无法分辨记录用户端状态。Cookie是...

  • Http Cookie

    Cookie Cookie的作用是管理服务器端和客户端之间状态,工作机制是用户识别和状态的管理,Web网站为了管理...

  • 前端调优23大规则(Part 4)

    Reduce cookie size减少cookie大小 HTTP Cookie(也叫Web Cookie或浏览器...

网友评论

      本文标题:说说HTTP Cookie

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