1.cookie数据会自动在Web浏览器和Web服务器之间传输的,因此服务端脚本就可以读,写存储在客户端的cookie值。

2.在javascript中使用cookie不会采用任何加密机制,因此是不安全的。但是,通过https来传输cookie数据是安全的,这和https的协议有关。

3.cookie的API中根本没有提供诸如查询,设置,删除cookie的方法,所有这些操作都要通过以特殊格式的字符串形式读写Document对象的cookie属性来完成。每个cookie的有效期和作用域,都可以通过cookie属性来分别制定。这些属性也是通过在同一个cookie属性上以特殊格式的字符串来特定的。

4.在js中使用cookie,首先需要确保cookie是否启用:{

  a.通过检测navigator.cookieEnabled=true,则为cookie启用状态(但是,只具备‘当前浏览会话生命周期’的非持久化cookie仍然是启用的)

  b.但是,navigator.cookieEnabled=true 不是所有的浏览器都支持这个属性,因此可以通过读,写和删除测试cookie数据来测试是否支持cookie。

}

5.除了name和value(及键值对),cookie还有一些可选的属性控制cookie的有效期和作用域。cookie默认的有效期很短暂,它只能维持在Web浏览器的会话期间,一旦用户关闭浏览器(是关闭浏览器,不是关闭单个窗口),cookie保存的数据就丢失了。

6.如果想要延长cookie的有效期,可以通设置max-age属性,但是必须明确告诉浏览器cookie的有效期是多长(单位是秒)。一旦设置了有效期,浏览器就会将cookie数据存储在一个文件夹中,并且直到过了指定的有效期才会删除该文件。

7.cookie的作用域是通过文档源文档路径来确定的,该作用域通过cookie的path和domain属性也是可以配置的。默认情况下,cookie和创建它的web页面有关,并对该web页面以及和该web页面同目录或子目录的其他的web页面可见。比如:web页面www.example.com/catalog/index.html页面创建一个cookie,那么www.example.com/catalog/order.html和www.example.com/catalog/widge/index.html都能访问访问那个创建的cookie,因为是创建cookie的页面的通过目录或子目录下的页面。

8.若想要整个网站都能够使用相同的cookie 值。可以设置cookie的路径(设置cookie的path属性)。这样一来,来自同一个web服务器的web页面,只要URL是以指定的路径前缀开始的,都可以分享cookie。比如http://www.example.com/catalog/index.html页面创建一个cookie,并且将路径设置为"/catalog"(path="/catalog"),那么该cookie对于http://www.example.com/catalog/路径下的文件和页面都可以访问cookie。同理,设置‘/’路径,那么http://www.example.com/下的文件都能访问。

9.将cookie的路径设置成‘/’ ,等于是让cookie和localStorage拥有同样的作用域,同时当请求该站点任何一个Web页面的时候,浏览器都必须将cookie的名字和值传递给服务器。但是,要注意的是,cookie的path属性不能被用作访问控制机制。如果一个web页面想要读取同一站点其他页面的cookie,只要简单的将其他页面以隐藏<iframe>的形式加载进来,随后读取对应文档的cookie就可以了。

10.cookie的作用域默认由文档源限制。但是有些大型网站想要子域之间能够共享cookie如fanyi.baidu.com,yinyue.baidu.com,这个时候就需要通过设置cookie的domain属性来达到目的。如果catlog.exmple.com域下的一个页面创建了一个cookie,并将其path属性设置成‘/’,其domain属性设置成'./example.com',那么,该cookie将对所有catlog.example.com, order.example.com以及任何其他.example.com域下的任何其他服务器都可见。如果没有为一个cookie设置域属性,那么domain属性的默认值当前web服务器的主机名。要注意的是,cookie的域只能设置为当前服务器的域。

11.cookie的secure属性,它是一个布尔类型的属性,用来表明cookie的值以何种形式通过网络传递。cookie默认是不以不安全的形式(通过普通的,不安全的HTTP连接)传递的。而一旦cookie被标识为“安全的”,那就只能当浏览器和服务器通过HTTPS或者其他安全的协议连接的时候才能传递他。

保存cookie:待续

了解cookie的更多相关文章

  1. 超大 Cookie 拒绝服务攻击

    有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...

  2. IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

    你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...

  3. 解决cookie跨域访问

    一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...

  4. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  5. 一个诡异的COOKIE问题

    今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...

  6. [转载]Cookie/Session的机制与安全

    Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...

  7. jquery.cookie的使用

    今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...

  8. 跨域问题,前端主动向后台发送cookie

    跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同  http://www.baidu.com:80 和 https:/ ...

  9. 【流量劫持】沉默中的狂怒 —— Cookie 大喷发

    精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...

  10. 好好了解一下Cookie

    Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...

随机推荐

  1. python自动化运维八:Ansible

    Ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控 ...

  2. 02-线性结构3 Reversing Linked List(25 point(s)) 【链表】

    02-线性结构3 Reversing Linked List(25 point(s)) Given a constant K and a singly linked list L, you are s ...

  3. Python对象拷贝——深拷贝与浅拷贝

    对象赋值 浅拷贝 深拷贝 1. 对象赋值 对象的赋值实际上是对对象的引用.也就是说当把一个对象赋值给另一个对象时,只是拷贝了引用.如: >>> t1 = tuple('furzoom ...

  4. [usaco2008feb_gold]路面修整

      FJ打算好好修一下农场中某条凹凸不平的土路.按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同时出现在修好的路中. 整条路被分成了N段,N个整数A_1 ...

  5. 【 spring配置文件详解】

    转自: http://book.51cto.com/art/201004/193743.htm Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的 ...

  6. 关于Spring Security的笔记

    1.web.xml配置文件 加载Spring Security,将DelegatingFilterProxy配置在DispatcherServlet之前. <filter> <fil ...

  7. codeforces 664B B. Rebus(乱搞题)

    题目链接: B. Rebus time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. Java对象的初始化

    昨天写的代码被殷老师诟病了,因为太「丑陋」. 原来我的代码结构是这样的: public class ColorRocognizer { ..... public static void main(St ...

  9. vmware 克隆linux虚拟机后的网卡修改方法

    VMware虚拟机安装好CentOS6.5系统后,纯净的系统多克隆几份出来方便后期做试验.克隆步骤很简单,克隆后出现的问题是克隆后的网卡MAC地址和原系统MAC地址一样,在局域网内会有冲突,需要更改克 ...

  10. 杂文笔记《Redis在万亿级日访问量下的中断优化》

    杂文笔记<Redis在万亿级日访问量下的中断优化> Redis在万亿级日访问量下的中断优化 https://mp.weixin.qq.com/s?__biz=MjM5ODI5Njc2MA= ...