一、cookie的概念
1. cookie的组成
Cookie 在HTTP的头部
Header信息中,HTTP Set-Cookie的Header格式如下:
"Set-Cookie": name=value; [expires=date]; [path=path]; [domain=domainname]; [secure];
Name/Value对
Name/Value由分号分隔,一个Cookie最多有20对,每个网页最多有一个Cookie,Value的长度不超过4K。对于Value值,最好用encodeURIComponent对其编码。Domain
Domain域名也是Cookie的一部分,
- 默认情况下,用户访问网页的域名会存放在Cookie中。
- 如果设置了这个Cookie的域名值,那么意味着域名上的所有服务器,而不仅是你正在访问的服务器,都能访问这个
Cookie,- 通常不要这样做。设置域名的格式如下:
domain=http://xyz.compath
设置对于特定的服务器来说哪个目录中的网页可访问Cookie,设置
path的格式是:path = /moviesExpires
设置
Cookie存活的时间,
- 默认情况下,用户关闭浏览器则
Cookie自动删除,- 如果没有设置
Cookie失效的时间,那么用户关闭浏览器时Cookie也消失。- 如果设置该项,就能延长
Cookie的生命期。设置时间在JS 中用Date对象的GMT形式,格式如下:expires = date.toGMTString()Secure
取
true或者false值。如果为true,那么必须通过https发送Cookie。
2. 表现形式二种
HTML
<meta http-equiv="set-cookie" content=" cookieName = cookieValue; expires=01-Dec-2006 01:14:26 GMT; path=/" />
javaScript
document.cookie = "username=Daisy Green; expires=Mon, 26 Aug 2019 12:00:00 UTC"; path=/";
3. 创建和使用
创建
JS可以使用
document.cookie属性创建cookie,可以通过以下方式创建cookie:
document.cookie = "username=Daisy Green; expires=Mon, 26 Aug 2019 12:00:00 UTC";
读取
/// document.cookie 会在一条字符串中返回所有 cookie,比如:cookie1=value; cookie2
var x = document.cookie;
修改
document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";
删除
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
4. cookie的特点
cookie 会自动在每次请求上携带
后端设置的cookie前端无法控制因为有HttpOnly 否者的话可以