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. linux杂谈(十三):代理server

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/linux_player_c/article/details/24707457 1.代理server的 ...

  2. iOS10的适配总结(转)

    1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserN ...

  3. Mac查看端口

    lsof -i tcp:port eg: lsof -i tcp:8899

  4. HDU2896 病毒侵袭 —— AC自动机

    题目链接:https://vjudge.net/problem/HDU-2896 病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit ...

  5. Android5.0 CheckBox颜色修改

    Android5.0开始,CheckBox带有material design动画效果,其默认的样式如下图所示: 可以看到,在上图中,CheckBox的边框为灰色,当被选中后,填充色为绿色. 那么如果我 ...

  6. 不能访问tomcat中的项目

    tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomcat,在 ...

  7. Quicklz压缩算法

    以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比.昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解.一般的压缩程序的要求读入文件之 ...

  8. 魔法少女-dp

    魔法少女 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %I64d & %I64u 前些时间虚渊玄的巨献小圆着实火 ...

  9. CSS:CSS 选择器参考手册

    ylbtech-CSS:CSS 选择器参考手册 1.返回顶部 1. 我们会定期对 W3School 的 CSS 参考手册进行浏览器测试. CSS3 选择器 在 CSS 中,选择器是一种模式,用于选择需 ...

  10. bzoj4520

    KD-tree+堆 多年大坑 KD-tree已经是半年前学的了,忘记了.这道题当时一直T,今天重新抄了一遍,A了 KD-tree过程:1.建树:每次依次按x,y划分平面,像二叉搜索树一样建树,每个点维 ...