Cookie工作原理

Cookie工作原理

Cookies基础

Cookies是web站点放置到你的硬盘上的程序。它们驻留在你的计算机上收集关于你在因特网上所做的一切事情的信息,并且web站点可以在任何时候读取到Cookies收集到的所有信息。

在新闻中这样定义是公平的,问题是,这个定义中没有一个是正确的,Cookies不是程序,它不能象程序一样能做很多事,因此它们自己不能收集任何信息,也不能收集关你你的机器的任何信息。

这里有一个关于Cookies的比较恰当的定义:

一个Cookies是web服务器存放在用户硬盘的一段文本,Cookies允许一个wen站点在用户的机器存放一些文本的信息,并可以在以后重新获取它。这个基于文本的信息存储着一些“键-值”对。

举个例子,一个web站点要为每一个来访者建立一个唯一的ID号码,并且将这个号码存储到每个来访者的机器的Cookies中。

如果你用微软的IE浏览一个web,你能够在你的硬盘看到你机器上的所有的Cookies,通常它们会驻留在目录c:\windows\cookies (win98),或者C:\Documents   and   Settings\user   name\Cookies(win2000,win   xp)   下面,当我看我的机器的这个目录的时候,我发现有165个文件。每个都是一个包含了“键-值”对的文本文件,每个站点都有一个Cookies文件。

你能够看到这个目录中的每一个文件都是一个简单的,普通的文本文件,你能够通过文件名看到是哪个web站点在你的机器放置了Cookies(这个信息也保存在了文件内容中),你可以打开每个文件查看其内容。

例如,我已经访问过了站点   goto.com,这个站点就会在我的机器上放置一个Cookie,这个Cookie文件的名字叫goto.com,包含下面的信息:

UserID   A9A3BECE0563982D   www.goto.com/站点   goto.com已经在我的机器上放置了一个单个的“键-值”对,键的名字是   UserID,键的值是   A9A3BECE0563982D,我第一次访问goto.com站点,站点分配了一个唯一的ID给我并把这个ID存放到了我的机器。

大多数的站点仅仅只在你的机器存放一个用户ID的Cookie,但这不是限制,一个站点可以在你的机器存放许多的“键-值”对,只要它喜欢。

Cookies文件只包含这些简单的“键-值”对的文本,、它不是程序,因此它不能“做”任何事情,一个web站点只能重新取得它自己放置到你硬盘的信息,它不能从其它的Cookies文件中取得信息,也不能看到你的机器的任何别的东西

Cookies数据如何移动

正如你在以上章节中看到的,Cookie数据是简单的web站点放置在你的硬盘上的“键-值”对的文本,所有的Cookies文件都是如此。Web站点保存这些数据,然后又可以取回来,一个web站点只能取回它自己存放在你机器的数据,不能看到其它的Cookie,也不能看到你机器上的其它任何东西。

Cookie数据按照下面的方式移动:

如果你在你的浏览器中输入了web的URL,浏览器会象这个URL的web站点发送请求,比如,你在浏览器中输入一下URL:http: //www.verizon.com,浏览器会将请求发送到Verizon的web服务器,请求它的首页。    当浏览器发送请求时,它会查看你机器上跟域名www.verizon.com有关的Cookie文件,如果存在同www.verizon.com有关的 Cookie,浏览器就会把相关的Cookie“键-值”对数据跟请求一起发送到服务器,如果不存在同www.verizon.com有关的 Cookie,则浏览器不发送Cookie到服务器。   Verizon的web服务器收到Cookies数据和一个页面的Http请求,如果收到了Cookie“键-值”对,Verizon的web服务器将能够使用它们。   如果没有收到Cookie“键-值”对,Verizon的web服务器就能知道你以前没有访问过这个站点,服务器建立一个新的用户ID,并在把你所请求的 页面发回到你的浏览器时,把用户ID“键-值”对发送到你的机器,你的硬盘就会驻留了对应这个站点的“键-值”对Cookie。   web服务器可以在你访问站点时,随时的更改“键-值”对或者加入一个新的“键-值”对。   同“键-值”对发送到客户端的还有同这个“键-值”对相关的一些其它信息,其中之一就是Cookie有效期,另一个就是路径(为了在同一个站点的不通部分关联不同的Cookie)。

你能够控制这个过程,你可以在你的浏览器中设置当web站点向你的机器发送Cookie时你是接受还是拒绝。

Web站点怎么使用Cookies

Cookies得到发展是因为它解决了谁在访问某个站点这个大问题,广义的理解,Cookies允许一个站点在你的机器上保存状态信息,这个信息让web 站点记住你的浏览器在什么状态,一个userID这个简单的“键-值”对可以让web站点知道你以前访问过这个站点,状态就是“你的浏览器至少访问过这个站点一次”,并且,站点从这次访问可以得知你的user   ID。

Web站点通过许多不通的方法来使用Cookies,下面是一些例子:

站点能够精确的知道有多少访问者在实际的访问站点,它能排除哪些因为代理服务器,缓冲器,集中器等等带来的干扰,正确统计站点访问数的唯一方法是为每一个 来访者设置一个唯一的ID,并存在Cookie中,用Cookie,站点能够:   决定有多少访问者到达。   决定多少新的访客,多少是再次造访者。   确定一个访问者访问的频度

web站点要做到这些是通过使用一个数据库,一个来访者第一次到来,站点在数据库中建立一个新的user   ID,并且将这个user   ID做为Cookie发送到客户端,这个用户下次再次访问这个站点,站点将会在数据库中同这个用户关联的user   ID   记录中增加访问次数,因此也知道了此用户多久访问一次。

为了查看每个用户的不同之处,站点可以存储用户的参数,比如,一些站点提供改变内容、布局、颜色设置的能力,它或者能够根据你的邮政编码提供定制的天气信息。

大多数的站点似乎都象这样的在站点数据库中保存用户参数,在Cookie中除了存储一个user   ID别的信息都没有,但是要在“键-值”对中存储一个实际的值还有另外一个方法:

电子商务站点能够实现类似购物蓝和快速付款这些功能,用包含user   ID的Cookie来跟踪客户并将不同的商品放入你的购物蓝中,你放入购物蓝的每一个商品都将存放在数据库中同你的user   ID相关的记录中,当你付款时,站点知道你都采购了哪些商品。若是没有Cookie或者类似的技术,将不可能实现上述的功能。

在所有的这些例子中,注意,数据库被用来存储你在站点中选择的商品,你浏览过的页面,你在表单中提供的信息等等,所有的信息都被保存在站点的数据库中,只有你的user   ID是存储在客户端的Cookie中用以辨识用户的身份。

Cookies的问题

Cookies不是一种理想的状态机,但是它的确能够做到许多别的方式不能做到的事,下面是Cookies的一些缺点:

人们经常共同使用一台机器   ――   在公共场合使用的任何机器,和在办公室使用的或在家中使用的许多机器都是多人共享的机器。让我们来看你正在使用一台多人使用的机器(例如,在图书馆的机 器)在一个网上商店购买商品,商店的网站将会在这个机器上留下你的一些设置信息,其后又有别人用这台机器到这个网上商店购买商品,这个网站将会提供的是你 的一些设置。   Cookies   被删除   ――   如果你的浏览器出来问题而寻求技术支持的时候,技术支持者要你做的第一件事就是要求你首先删除你机器上的所有internet临时文件,当你这样做后,你 将丢掉你的所有的Cookies文件。当你再次访问某个站点时,站点将会想你是个新的用户并给你一个新的user   ID,你以前在这个站点设置的一些个性设置也将不在存在。   使用多个机器   ――   人们在一天之内经常使用不止一台机器,比如,在办公室使用一台机器,在家又使用一台机器,在路上可能使用到笔记本电脑。这样在三台机器上将会用三个不通的 Cookie,同一个人在三台机器上将会被做为三个用户分别对待。

Cookie工作原理

Cookies基础

Cookies是web站点放置到你的硬盘上的程序。它们驻留在你的计算机上收集关于你在因特网上所做的一切事情的信息,并且web站点可以在任何时候读取到Cookies收集到的所有信息。

在新闻中这样定义是公平的,问题是,这个定义中没有一个是正确的,Cookies不是程序,它不能象程序一样能做很多事,因此它们自己不能收集任何信息,也不能收集关你你的机器的任何信息。

这里有一个关于Cookies的比较恰当的定义:

一个Cookies是web服务器存放在用户硬盘的一段文本,Cookies允许一个wen站点在用户的机器存放一些文本的信息,并可以在以后重新获取它。这个基于文本的信息存储着一些“键-值”对。

举个例子,一个web站点要为每一个来访者建立一个唯一的ID号码,并且将这个号码存储到每个来访者的机器的Cookies中。

如果你用微软的IE浏览一个web,你能够在你的硬盘看到你机器上的所有的Cookies,通常它们会驻留在目录c:\windows\cookies (win98),或者C:\Documents   and   Settings\user   name\Cookies(win2000,win   xp)   下面,当我看我的机器的这个目录的时候,我发现有165个文件。每个都是一个包含了“键-值”对的文本文件,每个站点都有一个Cookies文件。

你能够看到这个目录中的每一个文件都是一个简单的,普通的文本文件,你能够通过文件名看到是哪个web站点在你的机器放置了Cookies(这个信息也保存在了文件内容中),你可以打开每个文件查看其内容。

例如,我已经访问过了站点   goto.com,这个站点就会在我的机器上放置一个Cookie,这个Cookie文件的名字叫goto.com,包含下面的信息:

UserID   A9A3BECE0563982D   www.goto.com/站点   goto.com已经在我的机器上放置了一个单个的“键-值”对,键的名字是   UserID,键的值是   A9A3BECE0563982D,我第一次访问goto.com站点,站点分配了一个唯一的ID给我并把这个ID存放到了我的机器。

大多数的站点仅仅只在你的机器存放一个用户ID的Cookie,但这不是限制,一个站点可以在你的机器存放许多的“键-值”对,只要它喜欢。

Cookies文件只包含这些简单的“键-值”对的文本,、它不是程序,因此它不能“做”任何事情,一个web站点只能重新取得它自己放置到你硬盘的信息,它不能从其它的Cookies文件中取得信息,也不能看到你的机器的任何别的东西

Cookies数据如何移动

正如你在以上章节中看到的,Cookie数据是简单的web站点放置在你的硬盘上的“键-值”对的文本,所有的Cookies文件都是如此。Web站点保存这些数据,然后又可以取回来,一个web站点只能取回它自己存放在你机器的数据,不能看到其它的Cookie,也不能看到你机器上的其它任何东西。

Cookie数据按照下面的方式移动:

如果你在你的浏览器中输入了web的URL,浏览器会象这个URL的web站点发送请求,比如,你在浏览器中输入一下URL:http: //www.verizon.com,浏览器会将请求发送到Verizon的web服务器,请求它的首页。    当浏览器发送请求时,它会查看你机器上跟域名www.verizon.com有关的Cookie文件,如果存在同www.verizon.com有关的 Cookie,浏览器就会把相关的Cookie“键-值”对数据跟请求一起发送到服务器,如果不存在同www.verizon.com有关的 Cookie,则浏览器不发送Cookie到服务器。   Verizon的web服务器收到Cookies数据和一个页面的Http请求,如果收到了Cookie“键-值”对,Verizon的web服务器将能够使用它们。   如果没有收到Cookie“键-值”对,Verizon的web服务器就能知道你以前没有访问过这个站点,服务器建立一个新的用户ID,并在把你所请求的 页面发回到你的浏览器时,把用户ID“键-值”对发送到你的机器,你的硬盘就会驻留了对应这个站点的“键-值”对Cookie。   web服务器可以在你访问站点时,随时的更改“键-值”对或者加入一个新的“键-值”对。   同“键-值”对发送到客户端的还有同这个“键-值”对相关的一些其它信息,其中之一就是Cookie有效期,另一个就是路径(为了在同一个站点的不通部分关联不同的Cookie)。

你能够控制这个过程,你可以在你的浏览器中设置当web站点向你的机器发送Cookie时你是接受还是拒绝。

Web站点怎么使用Cookies

Cookies得到发展是因为它解决了谁在访问某个站点这个大问题,广义的理解,Cookies允许一个站点在你的机器上保存状态信息,这个信息让web 站点记住你的浏览器在什么状态,一个userID这个简单的“键-值”对可以让web站点知道你以前访问过这个站点,状态就是“你的浏览器至少访问过这个站点一次”,并且,站点从这次访问可以得知你的user   ID。

Web站点通过许多不通的方法来使用Cookies,下面是一些例子:

站点能够精确的知道有多少访问者在实际的访问站点,它能排除哪些因为代理服务器,缓冲器,集中器等等带来的干扰,正确统计站点访问数的唯一方法是为每一个 来访者设置一个唯一的ID,并存在Cookie中,用Cookie,站点能够:   决定有多少访问者到达。   决定多少新的访客,多少是再次造访者。   确定一个访问者访问的频度

web站点要做到这些是通过使用一个数据库,一个来访者第一次到来,站点在数据库中建立一个新的user   ID,并且将这个user   ID做为Cookie发送到客户端,这个用户下次再次访问这个站点,站点将会在数据库中同这个用户关联的user   ID   记录中增加访问次数,因此也知道了此用户多久访问一次。

为了查看每个用户的不同之处,站点可以存储用户的参数,比如,一些站点提供改变内容、布局、颜色设置的能力,它或者能够根据你的邮政编码提供定制的天气信息。

大多数的站点似乎都象这样的在站点数据库中保存用户参数,在Cookie中除了存储一个user   ID别的信息都没有,但是要在“键-值”对中存储一个实际的值还有另外一个方法:

电子商务站点能够实现类似购物蓝和快速付款这些功能,用包含user   ID的Cookie来跟踪客户并将不同的商品放入你的购物蓝中,你放入购物蓝的每一个商品都将存放在数据库中同你的user   ID相关的记录中,当你付款时,站点知道你都采购了哪些商品。若是没有Cookie或者类似的技术,将不可能实现上述的功能。

在所有的这些例子中,注意,数据库被用来存储你在站点中选择的商品,你浏览过的页面,你在表单中提供的信息等等,所有的信息都被保存在站点的数据库中,只有你的user   ID是存储在客户端的Cookie中用以辨识用户的身份。

Cookies的问题

Cookies不是一种理想的状态机,但是它的确能够做到许多别的方式不能做到的事,下面是Cookies的一些缺点:

人们经常共同使用一台机器   ――   在公共场合使用的任何机器,和在办公室使用的或在家中使用的许多机器都是多人共享的机器。让我们来看你正在使用一台多人使用的机器(例如,在图书馆的机 器)在一个网上商店购买商品,商店的网站将会在这个机器上留下你的一些设置信息,其后又有别人用这台机器到这个网上商店购买商品,这个网站将会提供的是你 的一些设置。   Cookies   被删除   ――   如果你的浏览器出来问题而寻求技术支持的时候,技术支持者要你做的第一件事就是要求你首先删除你机器上的所有internet临时文件,当你这样做后,你 将丢掉你的所有的Cookies文件。当你再次访问某个站点时,站点将会想你是个新的用户并给你一个新的user   ID,你以前在这个站点设置的一些个性设置也将不在存在。   使用多个机器   ――   人们在一天之内经常使用不止一台机器,比如,在办公室使用一台机器,在家又使用一台机器,在路上可能使用到笔记本电脑。这样在三台机器上将会用三个不通的 Cookie,同一个人在三台机器上将会被做为三个用户分别对待。


    相关文章

    如何拆除网络陷阱

    IT技术2007NO.35ScienceandTechnologyInnovationHerald科技创新导报 如何拆除网络陷阱 雷富强 (江苏省徐州高等师范学校) 摘要:网络的安全性在近几年提升到了非常重要的地位.大量网络病毒.木马的涌现 ...

    [网络安全与病毒防范]教案

    <网络安全与病毒防范> 教学概述 本教程围绕目前遇到的两大安全威胁--黑客与病毒展开论述,详细地描述了黑客攻击原理和计算机病毒原理.深入阐述了应对计算机安全威胁的防御措施,对常见的信息安全技术与产品做了概括性介绍,同时对如何有效 ...

    恍若隔世的顿悟ASP防止CC攻击方法

    防范方法 说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御. 1. 使用Cookie认证.这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有 ...

    已分享过jsp常见面试题(4)

    已分享过 jsp常见面试题(4) JSP企业面试题整理(1) 图示三层架构,并说明其特点,如何实现,每层实现什么功能?(企业笔试题) 在两层应用中,应用程序直接同数据库进行对话.三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常 ...

    企业信息门户单点登录系统的实现

    计 算 机 工 程 第 31 卷 第17期 Vol.31 № 17 Computer Engineering · ·网络与通信 文章编号:1000-3428(2005)17-102-03 文献标识码:A 2005年9月 September2 ...

    幸福的真谛(英语阅读)

    One of my patients, a successful businessman, tells me that before his cancer he would become depressed unless things we ...

    cookies是什么意思

    Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停 ...

    如何设计相对安全的cookie自动登录系统

    来源:本站转载 作者:佚名 时间:2013-07-29 TAG:我要投稿 很多网站登录的时候,都会有一个"记住我"功能,用户可以在限定时间段内免登录,比如豆瓣.人人.新浪微博等都有这种设计.这种技术其实就是基于cooki ...

    Java实现鼠标拖放功能的方法

    培养目标:具备高端.多方位.精英级水平的Java软件开发人才.课程内容:Java编程语言的特性;JVM/JRE/JDK的概念和区别;JDK开发环境的安装;面向对象的概念及编程;类和对象.字段/属性.方法.构造器的声明和使用;运算符.表达式. ...