對(duì)于CGI讀寫(xiě)COOKIE的編程(2)
發(fā)表時(shí)間:2024-05-15 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]如果你在一臺(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;}