包括:
Cookie概述(Cookie的存放,有效期和作用域)

Cookie操作(保存Cookie,读取Cookie,Cookie的生命周期)

Cookie工作原理(Cookie与会话跟踪,Cookie安全性)



Cookie概述:

    Cookie是由服务器生成并存储在客户端文件系统(.txt格式)中的key/value对。当浏览器再次请求该站点上的页面时,就会自动把保存的Cookie发回服务器。

    Cookie使得浏览器可以在访问同一个站点的不同请求间传递数据,让服务器程序识别不同的客户端。

    (cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。)

    典型应用:保存用户登录状态、跟踪用户行为、页面定制、保存购物车等需要保存全局变量的场合。

    PS:出于隐私保护的考虑,浏览器可以选择禁用Cookie,或者手动删除。

Cookie的存放:

    Cookie保存在客户端某个特定的目录下的一个.txt文本文件中,且不同站点的Cookie数据保存不同的文件中。

    Cookie数据一般都是加密后保存的。



有效期和作用域:


    有效期:Cookie可以指定一个expires值,定义其生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生命周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。

    作用域:默认情况下,某个站点保存的Cookie只能自己访问,不能被其他站点使用。但可以设置Cookie的domain和path值,限定在哪个域名下的哪个路径可以访问此Cookie。

    PS:“广告联盟”是个亟待规范的问题。

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Cookie操作



保存Cookie:


    Cookie可以由服务器程序(如Java、PHP等)创建并发送给客户端保存;也可以由客户端JavaScript脚本创建并保存。

//保存一个简单的Cookie

    document.cookie='uname=tom';

    //保存一个内容复杂的Cookie

    document.cookie='msg='+encodeURIComponent('Hi,JS 你好');

    //保存一个具有指定超时时间的Cookie

    document.cookie='uid=7788;expires='+new Date().toGMTString();

上述三行语句可以创建并保存三个Cookie,而不是只有一个!

    PS:Cookie键值中不能包含分号,逗号,等号,空格,同时为了防止中文乱码问题,键值应该使用encodeURIComponent()函数进行编码。

读取Cookie:

    可以使用document.cookie获取当前站点可以读取的所有Cookie(多个Cookie间用;分隔)

var cookies = document.cookie;

    console.log(cookies)  //多个Cookie用;分割

    var arr = cookies.split(';');

    for(var i = 0;i<arr.length;i++){

        var cookie = arr[i];  //键值对用=分割

        var cookiePair = cookie.split('=');

        console.log(cookiePair[0]+'='+cookiePair[1];

    }

PS:注意cookie键名中可能会被浏览器添加了空白字符,需要trim()操作。

Cookie的生命周期:

    若没有指定expires属性,创建的Cookie其实只是保存在内存中,浏览器已关闭也就被销毁了。

    可以在保存Cookie时使用expires指定其生存周期。

document.cookie='uid=7788';

    var time = new Date().getTime() + 1000*3600*24*30;

    var exp = new Date(time);

    document.cookie='uname=tom;expires='+exp.toGMTString();

PS:同理,可以把expires设置为一个过去的时间,就可以实现删除Cookie的效果。

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Cookie工作原理

Cookie工作原理:

    Cookie是识别用户,实现状态保持的最佳方式之一。具体分为如下两种类型:

        会话Cookie:保存在客户端内存中,关闭即删除。

        持久Cookie:保存在客户端文件系统中,可长久使用。

   

    客户端发送请求给服务器端,服务器端响应给客户端。



Cookie与会话跟踪:


    当客户端在当前web站点的多个页面间进行访问时,可以使用Cookie对该会话过程进行跟踪记录——购物车。

Cookie安全性:

    浏览器不会把A站点的Cookie回传给B站点,且Cookie中的敏感数据一般都是加密保存的,所以Cookie技术本身并没有太大的安全问题。

    但是,若客户端被木马病毒控制,Cookie可能被黑客盗取并骗取服务器的信任。

    广告联盟的存在,导致Cookie被滥用,侵犯了用户的个人隐私。

有关cookie的内容的更多相关文章

  1. 【转】彻底搞清C#中cookie的内容

    http://blog.163.com/sea_haitao/blog/static/77562162012027111212610/ 花了2天时间,彻底搞清C#中cookie的内容,搞清以下内容将让 ...

  2. cookie相关内容

    ----客户端删除cookie <script type="text/javascript">                        function DelC ...

  3. Header和Cookie相关内容

    相信很多同学都对HTTP的header和cookie,和session都有疑问,因为我们开发的时候一般都需要请求网络获取数据,有时候还需要带cookie或者带特殊的字段发起请求. 现在我们就来简单的了 ...

  4. 理解Session与Cookie

    写在前面的话:Session和Cookie是非常有意思的两个概念,对于两者的管理可以处理的很复杂,但是无论如何,理解Session和Cookie的基本概念和发明初衷,对于问题的解决,大有裨益. === ...

  5. 前端学HTTP之客户端识别和cookie

    前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...

  6. session & cookie(li)

    Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...

  7. HTTP Session、Cookie机制详解

    一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...

  8. ASP.NET Cookie(一)--基本应用

    Cookie提供了一种在Web应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用Cookie存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息 ...

  9. Cookie, LocalStorage 与 SessionStorage

    Cookie, LocalStorage 与 SessionStorage相同点 都是储存在用户本地的数据. 意义在于避免数据在浏览器和服务器间不必要地来回传递. 三者的特点     同属于html5 ...

随机推荐

  1. 第四模块:网络编程进阶&数据库开发 口述

    进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 子进程死了之后 ,父进程关闭的时候要清理掉子进程的僵尸进程(收尸),孤儿进程是指父进程先死掉了的,交给init管理. join() 等待子进 ...

  2. 1008: [HNOI2008]越狱(计数问题)

    1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 11361  Solved: 4914[Submit][Status ...

  3. git命令行操作详解

    目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...

  4. 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题

    ViewPager是android-support-v4.jar包中的一个系统控件,继承自ViewGroup,专门用以实现左右滑动切换View的效果,使用时需要首先在Project->prope ...

  5. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目9

    2014-03-20 04:08 题目:八皇后问题. 解法:DFS解决. 代码: // 9.9 Eight-Queen Problem, need I say more? #include <c ...

  6. Pascal 基础教程

    Pascal现在还有人想学习吗?先给出一本不错的Pascal教程,Object Pascal的教程我日后给出. Pascal基础教程       第一课 初识PASCAL语言           …… ...

  7. MQ消息中间件

    MQ是什么? MQ是Message Queue消息队列的缩写.消息队列是一种应用程序对应用程序的通信方法.应用程序通过写和检索入列队的针对应用程序的数据(消息)来进行通信,而不需要专用连接来链接它们. ...

  8. Python 绘制棋盘

    import turtle pen = turtle.Pen() pen.speed(10) width = 30 # 格子宽度 count = 18 # 横向纵向格子数 o = width * co ...

  9. jmeter之录制控制器与代理的使用

    1.       先启动jmeter,在测试计划中添加线程组 2.       选中线程组右键添加,在配置元件中点击HTTP请求默认值 3.       选中线程组右键添加,在逻辑控制器中点击录制控制 ...

  10. Windows环境下,python webdriver环境搭建

    最近刚开始学习selenium,这是我从虫师的<selenium2自动测试实战--基于Python语言>这本书上学到搭建环境的步骤,里面有加上我的一些总结,希望对大家有所帮助!   准备工 ...