|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
说说这一个月左右的学习情况和心得吧!我个人认为,既然决定了去做一件事,那就要以认真的态度去对待!既然决定来学习了,那不管当初是抱着怎样的心态来到这个培训班的,都要让自己认真的投入到学习中。cookie Cookie手艺是一个十分有争议的手艺,自经出生它就成了宽大收集用户和Web开辟人员的一个争辩核心。有一些收集用户,乃至包含一些资深的Web专家也对它的发生和推行感应不满,这倒不是由于Cookie手艺的功效太弱或其余手艺功能上的缘由,而仅仅是由于他们感觉Cookie 的利用,对收集用户的隐私组成了伤害。由于Cookie是由Web办事器保留在用户阅读器上的小文本文件,它包括有关用户的信息(如身份辨认号码、暗码、用户在Web站点上购物的体例或用户会见该站点的次数)。
那末Cookie 手艺事实如何呢?是不是真的给收集用户带来了团体隐私的伤害呢?仍是让咱们看了上面的内容,再做回覆吧。
(1)Cookie手艺简介
在WEB手艺开展史上,Cookie手艺的呈现是一个严重的厘革。最早是Netscape在它的Netscape Navigator阅读器中引入了Cookie手艺,从那时起,World Wide Web 协会就入手下手撑持Cookie尺度。今后又经由微软的鼎力推行(由于微软的IIS Web办事器所采取的ASP手艺很大水平的利用了Cookie手艺),即在微软的Internet Explorer阅读器中完整撑持Cookie手艺。到如今,绝大多半的阅读器都撑持Cookie手艺,或最少兼容Cookie手艺的利用。
1)甚么是Cookie?
依照Netscape官方文档中的界说,Cookie是在HTTP协定下,办事器或剧本可以保护客户任务站上信息的 一种体例。Cookie 是由Web办事器保留在用户阅读器上的小文本文件,它可以包括有关用户的信息(如身份辨认号码、暗码、用户在Web站点购物的体例或用户会见该站点的次数)。不管什么时候用户链接到办事器,Web站点都可以会见Cookie信息。
浅显地讲,阅读器用一个或多个限制的文件来撑持Cookie。这些文件在利用Windows操作体系的机械上叫做Cookie 文件,在Macintosh机械上叫做magic Cookie 文件,这些文件被网站用来在下面存储Cookie数据。
网站可以在这些Cookie 文件中拔出信息,如许对有些收集用户就有些反作用。有些用户以为这形成了对团体隐私的侵占,更糟的是,有些人以为Cookie是对团体空间的侵犯,并且会对用户的盘算机带来平安性的伤害。
今朝有些Cookie 是一时的,另外一些则是延续的。一时的Cookie只在阅读器上保留一段划定的工夫,一旦超越划定的工夫该Cookie就会被体系排除。例如在PHP中Cookie被用来跟踪用户历程直到用户分开网站。延续的Cookie则保留在用户的Cookie文件中,下一次用户前往时,依然可以对它停止挪用。
在Cookie文件中保留Cookie,一些用户会过度地以为这将带来很大的成绩。次要是有些用户忧虑Cookie会跟踪用户网上冲浪的习气,比如用户喜欢到那些类型的站点、爱从事些甚么举动等。惧怕这类团体信息一旦落入一些心怀叵测的家伙手中,那末团体也便可能成为一大堆告白渣滓的对象,乃至遭到不测的伤害。不外,这类忧虑压根儿不会产生,由于网站之外的用户是没法跨过网站来取得Cookie信息的。所以想以这类目标来使用Cookie是不成能的。不外,因为一些用户毛病的了解和“耳食之言”,一些阅读器开辟商别无选择,只好作出了解的呼应(例如Netscape Navigator4.0和Internet Explorer3.0都供应了屏障Cookie 的选项)。
对Cookie手艺等候了这么久的了局是,迫使很多阅读器开辟商在它们的阅读器中供应了对Cookie的天真性掌握功效。例如,今朝的两大主流阅读器Netscape Navigator 和 Internet Explorer是如许处置Cookie的:Netscape Navigator4.0不仅可以承受Cookie停止正告,并且还可以屏障失落Cookie;InternetExplorer3.0也能够屏障Cookie,但在Internet Explorer4.0中就只能停止承受正告而没有供应屏障选项,不外在Internet Explorer4.0以后的更新版本中又到场了屏障Cookie的功效选项。
另外,良多最新的手艺乃至已可以在不克不及屏障Cookie的阅读器长进行Cookie的屏障了。例如,可以经由过程将Cookie文件设置成分歧的类型来限制Cookie的利用。然而,十分不幸地是,如果你想完整屏障Cookie的话,一定会因而回绝很多的站点页面。由于现今已有很多Web站点开辟人员爱上了Cookie手艺的壮大功效,
例如Session对象的利用就离不开Cookie的撑持。
虽然明天仍有一些收集用户关于Cookie的争辩乐此不倦,然而关于绝大多半的收集用户来讲仍是偏向于承受Cookie的。因而,咱们尽可以宁神地利用Cookie手艺来开辟咱们的WEB页面。
2)Cookie是如何任务的?
要懂得Cookie,必不成少地要晓得它的任务道理。普通来讲,Cookie经由过程HTTP Headers从办事器端前往到阅读器上。起首,办事器端在呼应中使用Set-Cookie header来创立一个Cookie ,然后,阅读器在它的恳求中经由过程Cookie header包括这个已创立的Cookie,而且反它前往至办事器,从而完成阅读器的论证。
例如,咱们创立了一个名字为login的Cookie来包括会见者的信息,创立Cookie时,办事器真个Header 以下面所示,这里假定会见者的注册名是“Michael Jordan”,同时还对所创立的Cookie的属性如path、domain、expires等停止了指定。
Set-Cookie:login=Michael Jordan;path=/;domain=msn.com;
expires=Monday,01-Mar-99 00:00:01 GMT
下面这个Header会主动在阅读器端盘算机的Cookie文件中添加一笔记录。阅读器将变量名为“login”的Cookie赋值为“Michael Jordon”。注重,在实践传递过程当中这个Cookie的值是经由了URLEncode办法的URL编码操作的。 这个含有Cookie值的HTTP Header被保留到阅读器的Cookie文件后,Header就告诉阅读器将Cookie经由过程恳求以疏忽途径的体例前往到办事器,完成阅读器的认证操作。
另外,咱们利用了Cookie的一些属性来限制该Cookie的利用。例如Domain属功能够在阅读器端对Cookie发送停止限制,详细到下面的例子,该Cookie只能转达室到指定的办事器上,而决不会跑到其他的如www.hp.com的Web站点上去。Expires属性则指定了该Cookie保留的工夫刻日,例如下面的Cookie在阅读器上只保留到1999年3月1日1秒。固然,假如阅读器上Cookie 太多,超越了体系所答应的局限,阅读器将主动对它停止删除。至于属性Path,用来指定Cookie将被发送到办事器的哪个目次途径下。
申明:阅读器创立了一个Cookie后,关于每个针对该网站的恳求,城市在Header中带着这个Cookie;
不外,关于其他网站的恳求Cookie是相对不会随着发送的。并且阅读器会如许一向发送,直到Cookie过时为止。
上一局部讲了有关Cookie的手艺后台,这局部来讲说在PHP里若何设置、利用、删除Cookie,及Cookie的一些限制。PHP对Cookie撑持是通明的,用起来十分便利。
1、设置Cookie
PHP用SetCookie函数来设置Cookie。必需注重的一点是:Cookie是HTTP协定头的一局部,用于阅读器和办事器之间传递信息,所以必需在任何属于HTML文件自己的内容输入之前挪用Cookie函数。SetCookie 函数界说了一个Cookie,而且把它附加在HTTP头的前面,SetCookie函数的原型以下:
int SetCookie(string name, string value, int expire, string path, string domain, int secure);
除name以外一切的参数都是可选的。value,path,domain 三个参数可以用空字符串代换,暗示没有设置;expire和 secure两个参数是数值型的,可以用0暗示。expire参数是一个尺度的Unix工夫标志,可以用time()或mktime() 函数获得,以秒为单元。secure参数暗示这个Cookie是不是经由过程加密的HTTPS协定在收集上传输。
以后设置的Cookie 不是当即失效的,而是要比及下一个页面时才干看到.这是因为在设置的这个页面里Cookie由办事器传递给客户阅读器,鄙人一个页面阅读器才干把Cookie从客户的机械里掏出传回办事器的缘由。在统一个页面设置Cookie,实践是从后往前,所以假如要在拔出一个新的Cookie之前删失落一个,你必需先写拔出的语句,再写删除的语句,不然能够会呈现不但愿的了局。 来看几个例子:
复杂的:
SetCookie("MyCookie", "Value of MyCookie");
带生效工夫的:
SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小时
甚么都有的:
SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".phpuser.com", 1);
这里还有一点要申明的,好比你的站点有几个分歧的目次,那末假如只用不领路径的Cookie的话,在一个目次下的页面里设的Cookie在另外一个目次的页面里是看不到的,也就是说,Cookie是面向途径的。实践上,即便没有指定途径,WEB 办事器会主动传递以后的途径给阅读器的,指定途径会强迫办事器利用设置的途径。
处理这个成绩的举措是在挪用SetCookie时加上途径和域名,域名的格局可所以“www.phpuser.com”,也可是“.phpuser.com”。
SetCookie函数里暗示value的局部,在传递时会主动被encode,也就是说,假如value的值是“test value”在传递时就酿成了“test%20value”,跟URL的办法一样。固然,关于法式来讲这是通明的,由于在PHP吸收Cookie的值时会主动将其decode。
假如要设置同名的多个Cookie,要用数组,办法是:
SetCookie("CookieArray[]", "Value 1");
SetCookie("CookieArray[]", "Value 2");
或
SetCookie("CookieArray[0]", "Value 1");
SetCookie("CookieArray[1]", "Value 2");
2、吸收和处置Cookie
PHP对Cookie的吸收和处置的撑持十分好,是完整主动的,跟FORM变量的准绳一样,出格复杂。好比设置一个名为MyCookier的Cookie,PHP会主动从WEB办事器吸收的HTTP头里把它剖析出来,并构成一个与通俗变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值。数组一样合用。别的一个举措是援用PHP的全局变量$HTTP_COOKIE_VARS数组。
分离举例以下:(假定这些都在之前的页面里设置过了,而且依然无效)
echo $MyCookie;
echo $CookieArray[0];
echo count($CookieArray);
echo $HTTP_COOKIE_VARS["MyCookie"];
就这么复杂。
3、删除Cookie
要删除一个已存在的Cookie,有两个举措:
一是挪用只带有name参数的SetCookie,那末名为这个name的Cookie 将被从关系户机上删失落;另外一个举措是设置Cookie的生效工夫为time()或time()-1,那末这个Cookie在这个页面的阅读完以后就被删除(实际上是生效了)。
要注重的是,当一个Cookie被删除时,它的值在以后页在依然无效的。
4、利用Cookie的限制
起首是必需在HTML文件的内容输入之前设置;
其次分歧的阅读器对Cookie的处置纷歧致,且有时会呈现毛病的了局。好比:MS IE+SERVICE PACK 1不克不及准确处置带域名和途径的Cookie ,Netscape Communicator 4.05和MS IE 3.0不克不及准确处置不领路径和工夫的Cookie。至于MS IE 5 好象不克不及处置带域名、途径和工夫的Cookie。这是我在设计本站的页面时发明的。
第三个限制是在客户真个。一个阅读器能创立的Cookie数目最多为30个,而且每一个不克不及超越4KB,每一个WEB站点能设置的Cookie总数不克不及超越20个。
关于Cookie的话题,就说到这儿了。
(因为Cookie最后由Netscape界说的,所以附上Netscape公司关于Cookie的官方原始界说的网址:
_spec.html" target=_blank>http://www.netscape.com/newsref/std/cookie_spec.html应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^ |
|