HTTP cookie,通常直接叫做 cookie ,服务器对任意HTTP请求可以发送 “Set-Cookie” 响应头,key=value 形式传送,以分号空格相隔“; ”,但key,value都必须是经过URL编码。

客户端向服务器请求,如果设置了cookie,在同源请求中会自动带上cookie有 “Cookie”请求头,key=value 形式传送,以分号空格相隔“; ”。但在跨域请求时,不会自动带 cookie,比如在 xhr 跨域,可以通过XMLHttpRequest.withCredentials为true, 后端设置Header的方式让ajax自动带上不同源的cookie。

cookie 的组成:

名称:一个唯一确定的cookie名称,cookie名称不区分大小写;

值:cookie字符串值

域:cookie对于那个域是有效的

路径:指定域中的哪个路径访问cookie,并在请求时发送cookie。例如,指定路径为 http://www.example.com/a,那么 http://www.example.com,http://www.example.com/b 等就不能访问到cookie,但 http://www.example.com/a/aa 能

失效时间:表示cookie 合适被删除的时间戳,默认会在浏览器回话结束是删除所有cookie,如果设置的时间是以前的时间,则cookie会被删除

安全标志:‘secure’,指定后,只有在使用SSL连接的时候才会发送cookie 到服务器

在Javascript 中, 使用BOM 的document.cookie 属性来处理cookie 。

当用于读取cookie时,返回当前页面可用的所有cookie字符串,以分号空格 分隔。 “name1=value1; name2=value2”

当用于设置cookie时,document.cookie 可以设置为一个新的“key=value”字符串,这样就可以新添加到现有的cookie集合中,且并不会覆盖之前的非同名的cookie,如果之前有同名的cookie,会更新值。

function setCookie(key,value,options){
if (value !== undefined ) { if(options === undefined || options==""){
options={};
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setTime(+t + days * 864e+5);
} return (document.cookie = [
encodeURIComponent(key), '=', encodeURIComponent(value),
options.expires ? '; expires=' + (options.expires).toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
}
function getCookie(key){
var result = key ? undefined : {}; var cookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = decodeURIComponent(parts.shift());
var cookie = decodeURIComponent(parts.join('=')); if (key && key === name) {
result = cookie;
break;
}
} return result;
}
function removeCookie(key,options){
if (getCookie(key) === undefined) {
return false;
}
options.expires=-1;
setCookie(key,getCookie(key),options);
} setCookie("cookie1","value1",{expires:1,path:"/"});
setCookie("cookie2","value2",{expires:1,path:"/"});
removeCookie("cookie1",{path:"/"});
removeCookie("cookie2",{path:"/"});
console.log(getCookie("cookie1"));
console.log(getCookie("cookie2"));

http://www.cnblogs.com/Darren_code/archive/2011/11/24/Cookie.html

https://www.cnblogs.com/gg1234/p/5611086.html

设置,获取,删除cookie的更多相关文章

  1. 如何设置,获取,删除cookie?

    cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 1.不同的浏览器存放的cookie位置不一样,也是不能通用的 2.cookie的存储 ...

  2. jquery获取、设置、删除cookie

    获取cookie: function getCookie(cname) { var name = cname + "="; var ca = document.cookie.spl ...

  3. js保存,获取,删除cookie的操作

    [转]来自:http://blog.csdn.net/itmyhome1990/article/details/7363816 JSP表单页面 <form action="login& ...

  4. 五十八:Flask.Cookie之flask设置和删除cookie

    1.设置cookie:在flask.Response对象上,使用set_cookie('cookie名', 'cookie值')设置cookie set_cookie源码 key:cookie名val ...

  5. javascript删除Cookie的正确方法(转载)

    原来一直以为只要设置javascript的document.cookie对象就能简单的在浏览器端设置和删除cookie值,网上很多文章也是这么教的,但是最近发现简单的设置javascript的docu ...

  6. vue.js设置、获取、删除cookie

    项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...

  7. jquery 设置cookie、删除cookie、获取cookie

    1.引入jquery.js <script src="//cdn.bootcss.com/jquery/1.12.4/jquery.js"></script> ...

  8. js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : functi ...

  9. 设置cookie,获取cookie,删除cookie,修改cookie

    怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解 在操作cookie之前,先来看一下cookie长什么样. 可以看到,cookie是一个个键值对(“键=值”的形式)加上 ...

  10. js设置、修改、获取、删除 cookie

    上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...

随机推荐

  1. 使用SQL SERVER PIVOT实现行列转置

    一般我们在使用SQL语句实现行列转置时候,最常用的方法无外乎就是 case语句来实现,但是如果需要需要转置的列太多,那么case起来语句就无限庞大,十分不方便,sql server中的PIVOT就可以 ...

  2. centos7.5下安装teamview

    centos7.5下安装teamview, 1 安装 wget https://download.teamviewer.com/download/linux/teamviewer-host.x86_6 ...

  3. 12.通过微信小程序端访问企查查(采集工商信息)

    需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qichacha.com/wxa/v1/base/getEn ...

  4. 图解HTTP / HTTPS

    http://kb.cnblogs.com/page/155287/ 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议 ...

  5. Getting started with C# and GDAL

    Getting started with C# and GDAL http://vipassanaandenvironmentalinformatics.blogspot.jp/2013/03/get ...

  6. Mybatis:通过MapperScannerConfigurer进行mapper扫描

    在applicationContext.xml里配置的

  7. PerformCallback(珍藏版)

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="PerformCallback. ...

  8. PHP解决网站大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬 ...

  9. 线程池之 newScheduledThreadPool中scheduleAtFixedRate(四个参数)

    转自:https://blog.csdn.net/weixin_35756522/article/details/81707276 说明:在处理消费数据的时候,统计tps,需要用一个线程监控来获得tp ...

  10. DataGrip 连接数据库查询出来的结果乱码的问题

    打开连接数据源选项 选择 Advanced----Charset  填入 GBK 应用即可 目前遇到的是连接 SYbase数据库