选择显示字体大小

关于cgi读写cookie的编程

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


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons