在学习PHP如何设置Cookie的前我们先来了解下Cookie技术
![](/icons/35325dou2.gif)
(1)Cookie技术介绍
在WEB技术发展史上
![](/icons/35325dou.gif)
Cookie技术
![](/icons/35325de.gif)
出现是
![](/icons/35325yi.gif)
个重大
![](/icons/35325de.gif)
变革
![](/icons/35325dou2.gif)
最先是Netscape在它
![](/icons/35325de.gif)
Netscape Navigator浏览器中引入了Cookie技术
![](/icons/35325dou.gif)
从那时起
![](/icons/35325dou.gif)
World Wide Web 协会就开始支持Cookie标准
![](/icons/35325dou2.gif)
以后又经过微软
![](/icons/35325de.gif)
大
力推广(
![](/icons/35325yinwei.gif)
微软
![](/icons/35325de.gif)
IIS Web服务器所采用
![](/icons/35325de.gif)
ASP技术很大程度
![](/icons/35325de.gif)
使用了Cookie技术)
![](/icons/35325dou.gif)
即在微软
![](/icons/35325de.gif)
Internet Explorer浏览器中完全支持Cookie技术
![](/icons/35325dou2.gif)
到现在
![](/icons/35325dou.gif)
绝大多数
![](/icons/35325de.gif)
浏览器都支持Cookie技术
![](/icons/35325dou.gif)
或者至少兼容Cookie
技术
![](/icons/35325de.gif)
使用
![](/icons/35325dou2.gif)
1)什么是Cookie?
按照Netscape官方文档中
![](/icons/35325de.gif)
定义
![](/icons/35325dou.gif)
Cookie是在HTTP协议下
![](/icons/35325dou.gif)
服务器或脚本可以维护客户工作站上信息
![](/icons/35325de.gif)
![](/icons/35325yi.gif)
种方式
![](/icons/35325dou2.gif)
Cookie 是由Web服务器保存在用户浏览器上
![](/icons/35325de.gif)
小文本文件
![](/icons/35325dou.gif)
它可以包含有关用户
![](/icons/35325de.gif)
信息(如身份
识别号码、密码、用户在Web站点购物
![](/icons/35325de.gif)
方式或用户访问该站点
![](/icons/35325de.gif)
次数)
![](/icons/35325dou2.gif)
无论何时用户链接到服务器
![](/icons/35325dou.gif)
Web站点都可以访问Cookie信息
![](/icons/35325dou2.gif)
通俗地讲
![](/icons/35325dou.gif)
浏览器用
![](/icons/35325yi.gif)
个或多个限定
![](/icons/35325de.gif)
文件来支持Cookie
![](/icons/35325dou2.gif)
这些文件在使用Windows操作系统
![](/icons/35325de.gif)
机器上叫做Cookie 文件
![](/icons/35325dou.gif)
在Mac
![](/icons/35325int.gif)
osh机器上叫做magic Cookie 文件
![](/icons/35325dou.gif)
这些文件被网站WebSite用来在上面存储Cookie数据
![](/icons/35325dou2.gif)
网站WebSite可以在这些Cookie 文件中插入信息
![](/icons/35325dou.gif)
这样对有些网络用户就有些副作用
![](/icons/35325dou2.gif)
有些用户认为这造成了对个人隐私
![](/icons/35325de.gif)
侵犯
![](/icons/35325dou.gif)
更糟
![](/icons/35325de.gif)
是
![](/icons/35325dou.gif)
有些人认为Cookie是对个人空间
![](/icons/35325de.gif)
侵占
![](/icons/35325dou.gif)
而且会对用户
![](/icons/35325de.gif)
计算机带来安全性
![](/icons/35325de.gif)
危害
![](/icons/35325dou2.gif)
目前有些Cookie 是临时
![](/icons/35325de.gif)
![](/icons/35325dou.gif)
另
![](/icons/35325yi.gif)
些则是持续
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
临时
![](/icons/35325de.gif)
Cookie只在浏览器上保存
![](/icons/35325yi.gif)
段规定
![](/icons/35325de.gif)
时间
![](/icons/35325dou.gif)
![](/icons/35325yi.gif)
旦超过规定
![](/icons/35325de.gif)
时间该Cookie就会被系统清除
![](/icons/35325dou2.gif)
例如在PHP中Cookie被用来跟踪用户进程直到用户离开网站WebSite
![](/icons/35325dou2.gif)
持续
![](/icons/35325de.gif)
Cookie则保存在用户
![](/icons/35325de.gif)
Cookie文件中
![](/icons/35325dou.gif)
下
![](/icons/35325yi.gif)
次用户返回时
![](/icons/35325dou.gif)
仍然可以对它进行
![](/icons/35325diaoyong.gif)
![](/icons/35325dou2.gif)
在Cookie文件中保存Cookie
![](/icons/35325dou.gif)
![](/icons/35325yi.gif)
些用户会过分地认为这将带来很大
![](/icons/35325de.gif)
问题
![](/icons/35325dou2.gif)
主要是有些用户担心Cookie会跟踪用户网上冲浪
![](/icons/35325de.gif)
习惯
![](/icons/35325dou.gif)
譬如用户喜爱到那些类型
![](/icons/35325de.gif)
站点、爱从事些什么活动等
![](/icons/35325dou2.gif)
害怕这种个人信息
![](/icons/35325yi.gif)
旦落入
![](/icons/35325yi.gif)
些别有用心
![](/icons/35325de.gif)
家伙手中
![](/icons/35325dou.gif)
那么个人也就可能成为
![](/icons/35325yi.gif)
大堆广告垃圾
![](/icons/35325de.gif)
对象
![](/icons/35325dou.gif)
甚至遭到意外
![](/icons/35325de.gif)
损害
![](/icons/35325dou2.gif)
不过
![](/icons/35325dou.gif)
这种担心压根儿不会发生
![](/icons/35325dou.gif)
![](/icons/35325yinwei.gif)
网站WebSite以外
![](/icons/35325de.gif)
用户是无法跨过网站WebSite来获得Cookie信息
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
所以想以这种目
![](/icons/35325de.gif)
来应用Cookie是不可能
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
不过
![](/icons/35325dou.gif)
由于
![](/icons/35325yi.gif)
些用户
![](/icons/35325cuowu.gif)
![](/icons/35325de.gif)
理解以及“以讹传讹”
![](/icons/35325dou.gif)
![](/icons/35325yi.gif)
些浏览器开发商别无选择
![](/icons/35325dou.gif)
只好作出相识
![](/icons/35325de.gif)
响应(例如Netscape Navigator4.0和Internet Explorer3.0都提供了屏蔽Cookie
![](/icons/35325de.gif)
选
项)
![](/icons/35325dou2.gif)
对Cookie技术期待了这么久
![](/icons/35325de.gif)
结果是
![](/icons/35325dou.gif)
迫使许多浏览器开发商在它们
![](/icons/35325de.gif)
浏览器中提供了对Cookie
![](/icons/35325de.gif)
灵活性控制功能
![](/icons/35325dou2.gif)
例如
![](/icons/35325dou.gif)
目前
![](/icons/35325de.gif)
两大主流浏览器Netscape Navigator 和 Internet Explorer是这样处理Cookie
![](/icons/35325de.gif)
:Netscape Navigator4.0不但可以接受Cookie进行警告
![](/icons/35325dou.gif)
而且还可以屏蔽掉Cookie;InternetExplorer3.0也可以屏蔽Cookie
![](/icons/35325dou.gif)
但在Internet Explorer4.0中就只能进行接受警告而没有提供屏蔽选项
![](/icons/35325dou.gif)
不过在Internet
Explorer4.0的后
![](/icons/35325de.gif)
更新版本中又加入了屏蔽Cookie
![](/icons/35325de.gif)
功能选项
![](/icons/35325dou2.gif)
此外
![](/icons/35325dou.gif)
很多最新
![](/icons/35325de.gif)
技术甚至已经可以在不能屏蔽Cookie
![](/icons/35325de.gif)
浏览器上进行Cookie
![](/icons/35325de.gif)
屏蔽了
![](/icons/35325dou2.gif)
例如
![](/icons/35325dou.gif)
可以通过将Cookie文件设置成区别
![](/icons/35325de.gif)
类型来限制Cookie
![](/icons/35325de.gif)
使用
![](/icons/35325dou2.gif)
但是
![](/icons/35325dou.gif)
非常不幸地是
![](/icons/35325dou.gif)
要是你想完全屏蔽Cookie
![](/icons/35325de.gif)
话
![](/icons/35325dou.gif)
肯定会因此拒绝许多
![](/icons/35325de.gif)
站点页面
![](/icons/35325dou2.gif)
![](/icons/35325yinwei.gif)
当今已经有许多Web站点开发人员爱上了Cookie技术
![](/icons/35325de.gif)
强大功能
![](/icons/35325dou.gif)
例如Session对象
![](/icons/35325de.gif)
使用就离不开Cookie
![](/icons/35325de.gif)
支持
![](/icons/35325dou2.gif)
尽管今天仍有
![](/icons/35325yi.gif)
些网络用户对于Cookie
![](/icons/35325de.gif)
争论乐此不倦
![](/icons/35325dou.gif)
但是对于绝大多数
![](/icons/35325de.gif)
网络用户来说还是倾向于接受Cookie
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
因此
![](/icons/35325dou.gif)
我们尽可以放心地使用Cookie技术来开发我们
![](/icons/35325de.gif)
WEB页面
2)Cookie是怎样工作
![](/icons/35325de.gif)
?
要了解Cookie
![](/icons/35325dou.gif)
必不可少地要知道它
![](/icons/35325de.gif)
工作原理
![](/icons/35325dou2.gif)
![](/icons/35325yi.gif)
般来说
![](/icons/35325dou.gif)
Cookie通过HTTP Headers从服务器端返回到浏览器上
![](/icons/35325dou2.gif)
首先
![](/icons/35325dou.gif)
服务器端在响应中利用Set-Cookie header来创建
![](/icons/35325yi.gif)
个Cookie
![](/icons/35325dou.gif)
然后
![](/icons/35325dou.gif)
浏览器在它
![](/icons/35325de.gif)
请
求中通过Cookie header包含这个已经创建
![](/icons/35325de.gif)
Cookie
![](/icons/35325dou.gif)
并且反它返回至服务器
![](/icons/35325dou.gif)
从而完成浏览器
![](/icons/35325de.gif)
论证
例如
![](/icons/35325dou.gif)
我们创建了
![](/icons/35325yi.gif)
个名字为login
![](/icons/35325de.gif)
Cookie来包含访问者
![](/icons/35325de.gif)
信息
![](/icons/35325dou.gif)
创建Cookie时
![](/icons/35325dou.gif)
服务器端
![](/icons/35325de.gif)
Header 如下面所示
![](/icons/35325dou.gif)
这里假设访问者
![](/icons/35325de.gif)
注册名是“Michael Jordan”
![](/icons/35325dou.gif)
同时还对所创建
![](/icons/35325de.gif)
Cookie
![](/icons/35325de.gif)
属性如path、
do
![](/icons/35325main.gif)
、expires等进行了指定
Set-Cookie:login=Michael Jordan;path=/;do
![](/icons/35325main.gif)
=msn.com;
expires=Monday,01-Mar-99 00:00:01 GMT
上面这个Header会自动在浏览器端计算机
![](/icons/35325de.gif)
Cookie文件中添加
![](/icons/35325yi.gif)
条记录
![](/icons/35325dou2.gif)
浏览器将变量名为“login”
![](/icons/35325de.gif)
Cookie赋值为“Michael Jordon”
![](/icons/35325dou2.gif)
注意
![](/icons/35325dou.gif)
在实际传递过程中这个Cookie
![](/icons/35325de.gif)
值是经过了URLEncode思路方法
![](/icons/35325de.gif)
URL编码操作
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
这个含有Cookie值
![](/icons/35325de.gif)
HTTP Header被保存到浏览器
![](/icons/35325de.gif)
Cookie文件后
![](/icons/35325dou.gif)
Header就通知浏览器将Cookie通过请求以忽略路径
![](/icons/35325de.gif)
方式返回到服务器
![](/icons/35325dou.gif)
完成浏览器
![](/icons/35325de.gif)
认证操作
此外
![](/icons/35325dou.gif)
我们使用了Cookie
![](/icons/35325de.gif)
![](/icons/35325yi.gif)
些属性来限定该Cookie
![](/icons/35325de.gif)
使用
![](/icons/35325dou2.gif)
例如Do
![](/icons/35325main.gif)
属性能够在浏览器端对Cookie发送进行限定
![](/icons/35325dou.gif)
具体到上面
![](/icons/35325de.gif)
例子
![](/icons/35325dou.gif)
该Cookie只能传达室到指定
![](/icons/35325de.gif)
服务器上
![](/icons/35325dou.gif)
而决不会跑到其他
![](/icons/35325de.gif)
如www.phpq.net
![](/icons/35325de.gif)
Web站点上去
![](/icons/35325dou2.gif)
Expires属性则指定了该Cookie保存
![](/icons/35325de.gif)
时间期限
![](/icons/35325dou.gif)
例如上面
![](/icons/35325de.gif)
Cookie在浏览器上只保存到1999年3月1日1秒
![](/icons/35325dou2.gif)
当然
![](/icons/35325dou.gif)
如果浏览器上Cookie 太多
![](/icons/35325dou.gif)
超过了系统所允许
![](/icons/35325de.gif)
范围
![](/icons/35325dou.gif)
浏览器将自动对
它进行删除
![](/icons/35325dou2.gif)
至于属性Path
![](/icons/35325dou.gif)
用来指定Cookie将被发送到服务器
![](/icons/35325de.gif)
哪
![](/icons/35325yi.gif)
个目录路径下
介绍说明:浏览器创建了
![](/icons/35325yi.gif)
个Cookie后
![](/icons/35325dou.gif)
对于每
![](/icons/35325yi.gif)
个针对该网站WebSite
![](/icons/35325de.gif)
请求
![](/icons/35325dou.gif)
都会在Header中带着这个Cookie;不过
![](/icons/35325dou.gif)
对于其他网站WebSite
![](/icons/35325de.gif)
请求Cookie是绝对不会跟着发送
![](/icons/35325de.gif)
![](/icons/35325dou2.gif)
而且浏览器会这样
![](/icons/35325yi.gif)
直发送
![](/icons/35325dou.gif)
直到Cookie过期为止
![](/icons/35325dou2.gif)
Cookie技术是
![](/icons/35325yi.gif)
个非常有争议
![](/icons/35325de.gif)
技术
![](/icons/35325dou.gif)
自经诞生它就成了广大网络用户和Web开发人员
![](/icons/35325de.gif)
![](/icons/35325yi.gif)
个争论焦点
![](/icons/35325dou2.gif)
有
![](/icons/35325yi.gif)
些网络用户
![](/icons/35325dou.gif)
甚至包括
![](/icons/35325yi.gif)
些资深
![](/icons/35325de.gif)
Web专家也对它
![](/icons/35325de.gif)
产生和推广感到不满
![](/icons/35325dou.gif)
这倒不是
![](/icons/35325yinwei.gif)
Cookie技术
![](/icons/35325de.gif)
功能太弱或别
![](/icons/35325de.gif)
技术性能上
![](/icons/35325de.gif)
原因
![](/icons/35325dou.gif)
而仅仅是
![](/icons/35325yinwei.gif)
他们觉得Cookie
![](/icons/35325de.gif)
使用
![](/icons/35325dou.gif)
对网络用户
![](/icons/35325de.gif)
隐私构成了危害
![](/icons/35325dou2.gif)
![](/icons/35325yinwei.gif)
Cookie是由Web服务器保存在用户浏览器上
![](/icons/35325de.gif)
小文本文件
![](/icons/35325dou.gif)
它包含有关用户
![](/icons/35325de.gif)
信息(如身份
识别号码、密码、用户在Web站点上购物
![](/icons/35325de.gif)
方式或用户访问该站点
![](/icons/35325de.gif)
次数)
![](/icons/35325dou2.gif)
那么Cookie 技术究竟怎样呢?是否真
![](/icons/35325de.gif)
给网络用户带来了个人隐私
![](/icons/35325de.gif)
危害呢?看了上面
![](/icons/35325de.gif)
资料您心中应该有个度量了吧