时间: 2021-07-31 作者:daque
cookie的用处断定大师都领会了,偶尔咱们的cgi须要记载读取某个来访者的消息,比方该来访者运用该用的情景,那就得用到cooike本领,底下就计划一下怎样用cgi来记载、读取来访者计划机中的cookie。 cookie在各别的欣赏器上的保存办法是各别的,但这并不生存不兼容的题目,由于web效劳器与欣赏器之间是经过http相应头实行彼此传递cookie的消息的,咱们在读写cookie时不用领会其在存户端是如何保存的。 在cgi从来访者的计划机中写入一条cookie时,cgi须要向欣赏器发送一个相应头: set-cookie:name1=value;name2=value2;exprires=date;path=path;domiam=domain_name;secure 此刻逐一来证明之上相应头各项的含意,各项实质是用分号阁开的 咱们看到 name1=value和name2=value2 即是你要树立的cookie的实质,它是以名字=值的办法发送的,而name=value中不不妨有冒号、逗点、和空格,但不妨用%xx包办,xx为一个16进制数; exprires=date项是相关cookies的存在期,即该cookie的灵验期,灵验期的功夫方法是加沙功夫方法:wdy,dd-mon-yyyy hh:mm:ss gmt 这一项在写入cooie时是可选的,但不树立的话欣赏器与web效劳器的一次贯穿中断后,cookie就过了灵验期; domian项设置哪些长机不妨读取cookies,常常cookie寄存的都不要害的消息,即使你要寄存的的消息不大要害,这一项也不必树立; path项是设置了一台长机上哪些www资源不妨读取你所树立的cookie,即使path=/ 则这台长机上一切www资源不妨读取你所树立的cookie; secure是相关加密传递咱们可不必领会。 即使你在一台扶助cookie的存户端树立了cookie,当这个存户端在次来考察时,欣赏器会向你的cgi地方的web效劳器发送一条http相应头,这个相应头为: cookie:name1=value;name2=value2;exprires=date;path=path;domiam=domain_name;secure 按照这个http相应头web效劳器的情况变量 http_cookie=:name1=value;name2=value2 咱们对这个情况变量的实质举行领会就不妨的到我咱们要的消息。 以次给出我写的读写cookie的两段perl步调,你也不妨把它改写为c谈话 树立cookie: print "content-type:text/htmln"; print "set-cookie:name1=zjxyz;expires=thursdday,01-jan-2000 12:00:00 gmtn"; print "set-cookie:name2=ken;expires=thursdday,01-jan-2000 12:00:00 gmtn"; print "set-cookie:name3=ken;expires=thursdday,01-jan-2000 12:00:00 gmtnn"; 读取cookie和领会的进程: @pairs = split(/&/, $env{’http_cookie’}); foreach $pair (@pairs){ ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fa-f0-9][a-fa-f0-9])/pack("c", hex($1))/eg; $cookie{$name} = $value;}