js操作cookie
上一篇 / 下一篇 2007-06-04 11:54:13 / 个人分类:javascript
5dS'@.i#E6].W m0一篇写的比较好的js cookie的文章51Testing软件测试网jX6Sc e(j[
51Testing软件测试网BS&B'VN,R%pCookies,有些人喜欢它们,有些人憎恨它们。但是,很少有人真正知道如何使用它们。现在你可以成为少数人中的成员-可以自傲的Cookie 大师。-->
"vi:FbH$ryX)X051Testing软件测试网5K[]t,ng(qu
如果你象作者一样记性不好,那么你可能根本记不住人们的名字。我遇到人时,多半只是点点头,问句“吃了嘛!”,而且期望问候到此为止。如果还需要表示些什么,那么我就得求助于一些狡猾的技巧,好让我能想对方是谁。比如胡扯起一些和对方有关的人,不管他们之间关系多远,只要能避免不记得对方名字的尴尬就好: “你隔壁邻居的侄子的可爱小狗迈菲斯特怎么样?”通过这个方法,我希望能让对方感到,我确实很重视他(她),甚至还记得这些琐事,虽然实际上连名字都忘记了。但是,不是我不重视,而是我的记忆力实在是糟糕,而且要记住的名字又实在太多。如果我能给每个人设置cookies,那么我就不会再犯这种记忆力问题了。51Testing软件测试网MT_6{+i0c
51Testing软件测试网|/O0tZ*D)y^/~?m
在这篇文章里,我们要学习:
uk8j
Yft0
:rAWAYPg ]7S01. 什么是 Cookies?
b#Ru`0_9R\5c02. Cookie 的构成51Testing软件测试网%P8OW Hiz
S
3. 操纵 Cookies
p
fA g+Ala [!Zbc7v04. Cookie 怪兽
%J~M9?.`,u`'jm0
yNQJ$t#W0什么是Cookies?51Testing软件测试网,B1v,X1gU-W,M
v9y.GhM8@0你会问,什么是cookies呢? cookie 是浏览器保存在用户计算机上的少量数据。它与特定的WEB页或WEB站点关联起来,自动地在WEB浏览器和WEB服务器之间传递。51Testing软件测试网8P|y'T'T-f@
-SU
z)W
Q(Z(s0比如,如果你运行的是Windows操作系统,使用Internet Explorer上网,那么你会发现在你的“Windows”目录下面有一个子目录,叫做“Temporary Internet Files”。如果你有空看看这个目录,就会发现里面有一些文件,文件名称看起来就象电子邮件地址。比如在我机器上的这个目录里,就有 “jim@support.microsoft.com”这样的文件。这是一个cookie 文件,这个文件从哪来呢?猜一猜,它来自微软的支持站点。顺便说一句,这不是我的电子邮件地址,特此澄清。51Testing软件测试网o
_'^ p1w5pA
51Testing软件测试网.IRbEm}
对于管理细小的、不重要的、不想保存在中央数据库里的细节信息,Cookies 是个很不错的方案。(这不是说大家的名字不重要。)比如,目前网站上不断增长的自定义服务,可以为每个用户定制他们要看的内容。如果你设计的就是这样一个站点,那么你怎么来管理这样的信息:一个用户喜欢绿色的菜单条,而另一个喜欢红色的。确实是个累人的问题。不过,这样的信息,可以很安全地记录到cookie,并保存在用户的计算机上,而你自己的数据库空间可以留给更长久更有意义的数据。51Testing软件测试网&] s&r qQ2~m
a
51Testing软件测试网,Nv)y8V2d@
FYI: Cookies 对于安全用途,通常很有用。我不想在此就这一问题过于深入,只是提供一个示例,可以看到如何使用在一段时间之后过期的cookies来保证站点安全:51Testing软件测试网 Y'BV7s'C Y}"C%y
` Xh6x)vm'Xp01. 使用用户名和口令,通过 SSL 登录。
U
M8Pfk3e z_n02. 在服务器的数据库里检查用户名和口令。如果登录成功,建立一个当前时间标签的消息摘要 (比如 MD5) ,并把它保存在cookie和服务器数据库里。把用户的登录时间保存在服务器数据库里面的用户记录里。51Testing软件测试网.C,tQU2b0z
ih
3. 在进行每个安全事务时(用户处于登录状态的任何事务),把cookie的消息摘要和保存在服务器数据库里的摘要进行比较,如果比较失败,就把用户引导到登录界面。
!V H0LFbMy1n04. 如果第3步检查通过,那么检查当前时间和登录时间之音经过的时间是否超过允许的时间长度。如果用户已经超时,那么就把用户引到登录界面。51Testing软件测试网4l,OP~
A+jL
5. 如果第3步和第4步都通过了,那么把登录时间重新设置成当前时间,允许事务发生。那些需要你登录的安全站点,可能多数使用的都是和这里介绍的类似的方法。51Testing软件测试网
ni0iHm6d8`
g*C
Cookie的构成51Testing软件测试网1wE Gi"M
a!r7q0|
z LB1^0Cookies最初设计时,是为了CGI编程。但是,我们也可以使用Javascrīpt脚本来操纵cookies。在本文里,我们将演示如何使用Javascrīpt脚本来操纵cookies。(如果有需求,我可能会在以后的文章里介绍如何使用Perl进行cookie管理。但是如果实在等不得,那么我现在就教你一手:仔细看看CGI.pm。在这个CGI包里有一个cookie()函数,可以用它建立cookie。但是,还是让我们先来介绍cookies的本质。