📄 16-3.cfm.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Cookies</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋体" SIZE="5"><b>
<p ALIGN="JUSTIFY">Cookies</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">很少有网络技术能够象</font><font
FACE="宋体" SIZE="3">cookies</font><font SIZE="3">来在网络用户间制造这样大的争论。</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">只是一个无辜的名字,但是许多用户将这与邪恶的目的连在一起。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Netscape</font><font SIZE="3">首先在它的浏览器中引入了</font><font
FACE="宋体" SIZE="3">cookies</font><font SIZE="3">,从那时起,</font><font
FACE="宋体" SIZE="3">World Wide Web</font><font SIZE="3">协会就支持</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">标准。大部分浏览器现在都兼容</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">的使用。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Cookies</font><font SIZE="3">是什么?浏览器用一个或多个限定的文件支持</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">。这些文件在</font><font
FACE="宋体" SIZE="3">Windows</font><font SIZE="3">机器上叫做</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">文件或者在</font><font
FACE="宋体" SIZE="3">Macintosh</font><font SIZE="3">中叫做</font><font FACE="宋体"
SIZE="3">magic cookie</font><font SIZE="3">文件,被网站用来在上面存储</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">数据。网站可以在这些</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">文件中插入信息。这样对有些网络用户就有些副作用。有些用户认为这造成了对隐私的侵犯。更糟的是:有些人认为</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">是对个人空间的侵占。</p>
<p ALIGN="JUSTIFY">目前有些</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">是临时的,还有一些则是持续的。例如,</font><font FACE="宋体"
SIZE="3">cookies</font><font SIZE="3">被</font><font FACE="宋体" SIZE="3">Active Sever
Pages</font><font SIZE="3">用来跟踪用户进程直到用户离开网站。另外有些</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">则保持在</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">文件中直到用户返回时又进行调用。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在</font><font FACE="宋体" SIZE="3">cookie</font><font
SIZE="3">文件中保存</font><font FACE="宋体" SIZE="3">cookies</font><font SIZE="3">会产生很大的问题。主要是有些用户担心会跟踪用户网上冲浪的习惯。害怕这种信息如果落入一些‘黑手’,那么个人也就可能成为一大堆广告垃圾信笺的对象,不过,这种担心根本不会发生,因为无法跨过网站来获得</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">信息,以这种目的来应用</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">是不可能的。不过,由于一些用户错误的理解以及‘以讹传讹’,一些浏览器开发商别无选择只能作出响应(例如</font><font
FACE="宋体" SIZE="3">Netscape4.0</font><font SIZE="3">提供了屏蔽</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的选项)。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"> </p>
</font><font SIZE="3"><b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">目前一些有关</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">侵犯隐私权的讨论已经到了歇斯底里的地步,甚至包括网站站长、专家级的一些人物也在这种认识上犯过错误。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">目前的主流浏览器是这样的,</font><font
FACE="宋体" SIZE="3">IE</font><font SIZE="3">和</font><font FACE="宋体" SIZE="3">NETSCAPE</font><font
SIZE="3">都提供了附加的控制</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">的手段,其中</font><font FACE="宋体" SIZE="3">NETSCAPE4.0</font><font
SIZE="3">不但可以对接受</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">进行警告,而且还可以屏蔽掉</font><font FACE="宋体" SIZE="3">Cookie,
IE3.0</font><font SIZE="3">也可以屏蔽</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">,但是由于微软开发出了</font><font FACE="宋体" SIZE="3">Active
Server Pages</font><font SIZE="3">,因此在</font><font FACE="宋体" SIZE="3">IE4.0</font><font
SIZE="3">中就只能进行接受警告而没有提供屏蔽选项。</p>
<p ALIGN="JUSTIFY">更过分的是,很多技巧的技术甚至已经可以在不能屏蔽</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">的浏览器上进行</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的屏蔽。例如,将你的</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">文件作成只读(参见</font><a
HREF="javascript:if(confirm('http://www.cookiecentral.com/ \n\n文件并未按 Teleport Pro 取回, 因为 它的域或路径超过启始网址中设定的范围。 \n\n你要从服务器上打开它吗? '))window.location='http://www.cookiecentral.com/'" tppabs="http://www.cookiecentral.com/"><font FACE="宋体" COLOR="#0000ff"><u><i>http://www.cookiecentral.com</i></u></font></a><font
SIZE="3">)</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">很不幸,由于上述原因,你的网站利用</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">就会有各种麻烦,甚至造成</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">的调用失败。</p>
</font><b><font FACE="宋体">
<p ALIGN="JUSTIFY">Cookie</font>是怎样工作的</p>
</b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Cookies</font><font SIZE="3">将通过</font><font FACE="宋体"
SIZE="3">HTTP Headers</font><font SIZE="3">来从服务端返回到浏览器上。服务端首先在响应中利用</font><font
FACE="宋体" SIZE="3">Set-Cookie header</font><font SIZE="3">来创建一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">,浏览器后面的请求的</font><font
FACE="宋体" SIZE="3">cookie header</font><font SIZE="3">中就会返回这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">来完成浏览器的认证。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">假设你创建了一个名字为</font><font
FACE="宋体" SIZE="3">UserName</font><font SIZE="3">的</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">来包含访问者的信息,创建</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">时,</font><font FACE="宋体"
SIZE="3">Server</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Header</font><font
SIZE="3">就象下面(假设访问者为</font><font FACE="宋体" SIZE="3">Bill Gates</font><font
SIZE="3">)</font><font FACE="宋体" SIZE="3">:</p>
<p ALIGN="JUSTIFY">Set-Cookie: UserName=BILL+Gates;path=/;domain=aspsite.com;</p>
<p ALIGN="JUSTIFY">expires=Tuesday,01-Jan-99 00:00:01 GMT</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个</font><font FACE="宋体" SIZE="3">Header</font><font
SIZE="3">就在浏览器的电脑上的</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">文件中添加了一条记录。浏览器将名字为</font><font FACE="宋体"
SIZE="3">UserName</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">赋值为</font><font FACE="宋体" SIZE="3">Bill Gates</font><font SIZE="3">。请注意这个</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">的值是进行了</font><font
FACE="宋体" SIZE="3">URL-encoded</font><font SIZE="3">操作的。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">后来,</font><font FACE="宋体" SIZE="3">header</font><font
SIZE="3">通知浏览器将</font><font FACE="宋体" SIZE="3">cookie</font><font SIZE="3">通过请求以忽略路径的方式返回服务端,因此,一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">设定后,其应用的所有文件就必须在同一个目录下,例如如果开始指定的路径是</font><font
FACE="宋体" SIZE="3">/private</font><font SIZE="3">目录,那么</font><font
FACE="宋体" SIZE="3">cookie Header</font><font SIZE="3">对文件:</font><font
FACE="宋体" SIZE="3">/private/mypage.asp</font><font SIZE="3">的请求就可以,而</font><font
FACE="宋体" SIZE="3">/mypage.asp</font><font SIZE="3">由于路径变动就无法利用这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">了。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">domain</font><font SIZE="3">属性能够在浏览器端更加对</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">发送进行限定。在这个例子中,</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">只能传到指定的服务器上,而决不会跑到什么</font><font
FACE="宋体" SIZE="3">www.yahoo.com</font><font SIZE="3">或者什么其他网站。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">现在的浏览器在判断</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的路径时是区分大小写的,这就意味着如果路径是</font><font
FACE="宋体" SIZE="3">/private</font><font SIZE="3">,那么以</font><font
FACE="宋体" SIZE="3">/PRIVATE</font><font SIZE="3">路径方式就无法进行这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的调用和认证。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">最后,</font><font FACE="宋体" SIZE="3">Expires</font><font
SIZE="3">标记限定了</font><font FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">的过期时间,在例子中的</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中,限定浏览器将该</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">保存到</font><font FACE="宋体"
SIZE="3">1999</font><font SIZE="3">年</font><font FACE="宋体" SIZE="3">1</font><font
SIZE="3">月</font><font FACE="宋体" SIZE="3">1</font><font SIZE="3">日第一秒,实际上,浏览器在接受的</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">很多时,还会自动进行删除。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">浏览器创建了一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">后,在每一个针对该网站的请求时就都会在</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中带着这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">,也就是每一次满足该路径的情况下这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">都会有效。不过,对于其他网站的请求</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">是绝对不会跟着发送的。浏览器会这样一直发送到</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">过期为止。</font><font
FACE="宋体" SIZE="3">Cookie Header</font><font SIZE="3">如下:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">cookie: username: Bill+Gates</p>
</font><b>
<p ALIGN="JUSTIFY">在<font FACE="宋体">Active Server Pages</font>中创建和读取<font
FACE="宋体">Cookies</p>
<p ALIGN="JUSTIFY"></font></b><font SIZE="3">当利用</font><font FACE="宋体" SIZE="3">Active
Server Pages</font><font SIZE="3">创建了一个</font><font FACE="宋体" SIZE="3">cookie</font><font
SIZE="3">之后,你就可以使用</font><font FACE="宋体" SIZE="3">Response</font><font
SIZE="3">对象的</font><font FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">集合了。你可以创建两种</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">;一种是单值的,另一种可以认为是</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">字典类型,即允许多个键值对的存在。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">创建单值的相对简单,如下脚本:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><% Response.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">)=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">Bill Gates</font><font
SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).Expires=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Jan 1,1999</font><font SIZE="3">”</font><font
FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个脚本的工作一目了然,将名字为</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">的</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">赋值为</font><font FACE="宋体" SIZE="3">Bill
Gates</font><font SIZE="3">,</font><font FACE="宋体" SIZE="3"> </font><font SIZE="3">同时将过期时间限定为</font><font
FACE="宋体" SIZE="3">1999</font><font SIZE="3">年</font><font FACE="宋体" SIZE="3">1</font><font
SIZE="3">月</font><font FACE="宋体" SIZE="3">1</font><font SIZE="3">日,这里面需要说明的是,</font><font
FACE="宋体" SIZE="3">Expires</font><font SIZE="3">属性如果不进行赋值,那么默认的就是用户一离开网站就过期。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">由于这个例子脚本创建的是</font><font
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -