本文共 1675 字,大约阅读时间需要 5 分钟。
cookie 的属性
cookie属性:name、value、expires、domain、path、secure、max-age、HttpOnly。name:
name属性是必须的,用于定义cookie的名称value:
value属性是必须的,用于指定cookie的值expires:
expires属性用于指定Cookie过期时间。它采用UTC或GMT格式,比如通过new date().toUTCString()或new Date().toGMTString()获取到的Thu, 09 Aug 2018 03:17:40 GMT。 如果不设置该属性,或者设为null,Cookie只在当前会话(session)有效,浏览器窗口一旦关闭,当前Session结束,该Cookie就会被删除。 浏览器根据本地时间,决定Cookie是否过期,由于本地时间是不精确的,所以没有办法保证Cookie一定会在服务器指定的时间过期。 当设置的失效时间大于等于1天时:我们可以在 expires 属性后面直接输入XX天数
$.Cookies('name', 'value', { expires: 7 });
当设置的失效时间少于一天时:我们需要在当前的时间上加上失效时间。
例如下面是设置cookie的失效时间为15分钟。
var millisecond = new Date().getTime(); var expiresTime = new Date(millisecond + 60 * 1000 * 15); $.Cookies('name', 'value', { expires: expiresTime, });
如果expires设置一个过去的时间点,那么这个cookie 会被立即删掉(失效)。
domain :
omain属性指定Cookie所在的域名,比如example.com或subdomain.example.com。 如果未指定,默认为设定该Cookie的域名。所指定的域名必须是当前发送Cookie的域名的一部分,比如当前访问的域名是example.com,就不能将其设为google.com。只有访问的域名匹配domain属性,Cookie才会发送到服务器。path :
path属性用来指定路径,必须是绝对路径(比如/、/mydir),如果未指定,默认为请求该Cookie的网页路径。 只有path属性匹配向服务器发送的路径,Cookie才会发送。这里的匹配不是绝对匹配,而是从根路径开始,只要path属性匹配发送路径的一部分,就可以发送。比如,path属性等于/blog,则发送路径是/blog或者/blogroll,Cookie都会发送。path属性生效的前提是domain属性匹配。secure :
secure属性用来指定Cookie只能在加密协议HTTPS下发送到服务器。 该属性只是一个开关,不需要指定值。如果通信是HTTPS协议,该开关自动打开。max-age :
max-age属性用来指定Cookie有效期,比如60 * 60 * 24 * 365 (即一年31536000秒) 正常情况下,max-age的优先级高于expires,但是7.HttpOnly :
HttpOnly属性用于设置该Cookie不能被JavaScript读取. (即document.cookie不会返回这个Cookie的值),只用于向服务器发送。 Set-Cookie: key=value; HttpOnly 上面的这个Cookie将无法用JavaScript获取。进行AJAX操作时,XMLHttpRequest对象也无法包括这个Cookie。这主要是为了防止XSS攻击盗取Cookie。 作者:爱学习的小青蛙 链接:https://www.jianshu.com/p/cac086d1c348 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。