## Cookie
Cookie是什么
- 是服务器端发送到用户浏览器并保存在本地的一小块数据,会在浏览器下次向统一服务器再发起请求时被携带并发送到服务器上
- 通常,Cookie用于告知服务器端两个请求是否来自同一浏览器,如保持用户登录状态
- Cookie曾一度用于客户端数据的存储,因当时并没有其它合适的存储办法而作为唯一的存储手段
- 无状态:第一次发送请求后,不知道当时的结果(第一次发送请求之后的结果)
Cookie的作用域
Domain和Path标识定义了Cookie的作用域
- Domain标识指定了哪些主机可以接受Cookie
- 如果不指定,默认为当前文档的主机(不包含子域名)
- 如果制定了Domain,则一般包含子域名
- Path标识指定了主机下的哪些路径可以接受Cookie(该URL路径必须存在于请求URL中)
Cookie的有效期
Max-age和Expires标识定义了Cookie的有效期
- 会话期Cookie(浏览器关闭后自动删除)
- 持久性Cookie(指定一个特定的过期时间或者有效期)
Cookie应用
- 会话的状态(购物车,登录状态)
- 个性化设置(用户自定义设置、主题)
- 浏览器行为跟踪(跟踪分析用户行为)
访问和更新Cookie
创建Cookie
使用Document.cookie属性来访问和更新Cookie
<script>
/*
Cookie所存储的数据内容
Cookie存储的数据格式
* 多个数据内容之间使用“:”进行分隔的
* 每个数据内容都是key/value格式
允许存储多个数据内容
*/
document.cookie = 'name=zhangwuji;Domian=wo.com'
console.log(document.cookie)
</script>
注意:这个方法一次只能对一个cookie进行设置或更新
读取cookie
同创建(只能读取,不能修改)
删除cookie
只需要设置Expires标识为以前的时间即可
注意:当删除时不必指定Cookie的值
Set-Cookie响应头
向用户代理(一般是浏览器)发送Cookie信息(可出现多次)
Cookie请求头
注意:自动携带Cookie信息