明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

對(duì)于CGI讀寫(xiě)COOKIE的編程(2)

[摘要]如果你在一臺(tái)支持COOKIE的客戶端設(shè)置了COOKIE,當(dāng)這個(gè)客戶端在次來(lái)訪問(wèn)時(shí),瀏覽器會(huì)向你的CGI所在的WEB服務(wù)器發(fā)送一條HTTP響應(yīng)頭,這個(gè)響應(yīng)頭為: Cookie:name1=value;name2=value2;exprires=DATE;PATH=PATH;domiam=DOMAIN...
如果你在一臺(tái)支持COOKIE的客戶端設(shè)置了COOKIE,當(dāng)這個(gè)客戶端在次來(lái)訪問(wèn)時(shí),瀏覽器會(huì)向你的CGI所在的WEB服務(wù)器發(fā)送一條HTTP響應(yīng)頭,這個(gè)響應(yīng)頭為:
Cookie:name1=value;name2=value2;exprires=DATE;PATH=PATH;domiam=DOMAIN_NAME;SECURE
根據(jù)這個(gè)HTTP響應(yīng)頭WEB服務(wù)器的環(huán)境變量 HTTP_COOKIE=:name1=value;name2=value2
我們對(duì)這個(gè)環(huán)境變量的內(nèi)容進(jìn)行分解就可以的到我我們要的信息。

  以下給出我寫(xiě)的讀寫(xiě)COOKIE的兩段PERL程序,你也可以把它改寫(xiě)為C語(yǔ)言

設(shè)置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和分解的過(guò)程:

@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;}