包括:
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. Android 意图通用类 IntentUrl

    1.整体分析 1.1.源代码如下,可以直接Copy. public class IntentUtil { /** * 打开链接 * 根据设置判断是用那种方式打开 * * @param context ...

  2. Alter the structure of web pages with JavaScript

    Most of the DOM methods you've seen so far are useful for identifying elements. Both getElementById ...

  3. JDBC---java与数据库中数据类型的对应关系

    基础数据类型 Java 类型 SQL 类型 int 或 java.lang.Integer INTEGER long 或 java.lang.Long BIGINT short 或 java.lang ...

  4. Dapper 学习笔记

    一.基础 1.Dapper代码就一个SqlMapper.cs文件, 前人测试Dapper速度较快 的Orm,读取速度接近IDataReader,超过DataTable. 2.a.下载地址 https: ...

  5. 验证表单的js代码段

     JS常用功能 转载自:http://blog.csdn.net/kalision/article/details/12516103 引用js文件: <script src="js/d ...

  6. python之路——网络编程

    一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好.但是如果这两个程序之间想要传递一个数据, ...

  7. ./configure, make, sudo make install 的含义

    一般编译安装会用到. 将压缩包example.tar.gz解压到onePackage下example, 在onePackage下新建install文件夹. 在终端中执行 1) 配置sudo ./con ...

  8. 聊聊、Java SPI

    SPI,Service Provider Interface,服务提供者接口. Animal 接口 package com.rockcode.www.spi; public interface Ani ...

  9. Ext JS表单Ext.form.FormPanel

    1.表单 对于传统的b/s应用来说,数据录入元素是放在表单<form>标签里面的.而对于ExtJS应用来说,则可以直接使用FormPanel控件来存放表单中的元素.FormPanel继承自 ...

  10. 【python基础】--常用数据结构

    list tuple dict set四种常用数据结构 list list 有序的集合,可以随时添加.删除其中元素值; 支持list嵌套模式, >>> p = ['a','b']&g ...