cookie格式?
cookie就是一串字符串,格式就是键值对,分号隔开,三个属性可有可无。
cookieName=cookieValue;expires=GMTString;path=URLpath;domain=siteDomain ;secure
cookieName(cookie名称)= cookieValue(cookie值);
expires(失效日期)
path ( 可访问url)
domain (可访问主机)
secure(属性可防止信息在传递的过程中被监听捕获后导致信息泄露,如果设置为true,可以限制只有通过https访问时,才会将浏览器保存的cookie传递到服务端,如果通过http访问,不会传递cookie)
创建cookie
// 创建cookie encodeURIComponent() 函数可把字符串作为 URI 组件进行编码
function setCookie(name, value, expires, path, domain, secure) {
// cookieName(cookie名称)= cookieValue(cookie值);
var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
// 如果expires(失效日期)是Data类型,则加上expires(失效日期)
if (expires instanceof Date) {
cookieText += '; expires=' + expires;
}
// 如果有path ( 可访问url),则加上
if (path) {
cookieText += "; path=" + path }
// domain (可访问主机)
if (domain) {
cookieText += '; domain=' + domain;
}
// secure(是否限制cookie在http下传递给服务器)
if (secure) {
cookieText += '; secure';
}
document.cookie = cookieText;
}
// 获取cookie
function getCookie(name) {
var cookieName = encodeURIComponent(name) + '=';
// indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
var cookieStart = document.cookie.indexOf(cookieName);
var cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(';', cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
// decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
}
return cookieValue;
}
// 删除cookie
function unsetCookie(name) {
document.cookie = name + "= ; expires=" + new Date(0);
}