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. ORA-00257: archiver error. Connect internal only, until freed【日志归档清理】

    select * from V$FLASH_RECOVERY_AREA_USAGE;  查看使用情况 用plsql登陆时提示“ORA-00257: archiver error. Connect in ...

  2. uva-11129-分治

    题意:对于一个0-(N-1)的等差数列,求其中一个排列Q,使得任意0<=i,j,k<n 时,ai,aj,ak不是等差数列. 解法:考虑0-(N-1)这个等差数列,假设公差为K,那么数列如下 ...

  3. iPhone投影

    iPhone投影到Mac上面的操作,用QuickTime,选择主菜单的新建屏幕录制,然后点击录制按钮右边的箭头,相机切换到iPhone就可以了. 相关操作参照 https://jingyan.baid ...

  4. 《算法》第五章部分程序 part 8

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 pac ...

  5. 转载 :实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(一)

    在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用.虽然Q ...

  6. linux常用工具及命令

    1.windows复制文件到linux可以使用工具winscp工具 2.建立软连接命令(将/software/run.log的文件指向/usr/local/logs/中): cd /usr/local ...

  7. Mysql 储存引擎

    查看当前版本支持哪些储存引擎 mysql> show engines; InnoDB 支持事务机制 : 保证操作安全性 行级锁定 : 开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最 ...

  8. git异常

    1.  SSL certificate problem: self signed certificate 因git默认是ssl方式验证,在采用http请求时,是使用的账号密码方式,因此需要git放行. ...

  9. 保存对象报错with two open Sessions

    purorderService.save(newpur);出现如下 org.springframework.orm.hibernate3.HibernateSystemException: illeg ...

  10. ACM__搜素之BFS与DFS

    BFS(Breadth_First_Search) DFS(Depth_First_Search) 拿图来说 BFS过程,以1为根节点,1与2,3相连,找到了2,3,继续搜2,2与4,相连,找到了4, ...