Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- 关于CGI读写COOKIE的编程
关于CGI读写COOKIE的编程
COOKIE的用途相信大家都知道了,有时我们的CGI需要记录读取某个来访者的信息,例如该来访者使用该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;}
发布人:netbull 来自:Linux技术支持站点
Linux网络服务器配置基础(上)
TCP/IP参考模型
一个SYN攻击的代码分析
XUL教程 发布说明
网络数据库5日教程(2)
我用mandrake8.1办公
配置你的第一台e-mail服务器(实用示范)
警惕新的D.o.S方法
安装Linux应用软件的基本方法
Linux环境下实现组件返回消息的技巧
如何设置一个企业级的Linux POP3服务器
《Linux Magazine》2000年度编辑选择奖 (目录)
JSP的环境引擎--Tomcat
CUPS--轻松实现LINUX下的打印
FreeBSD kld简介
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接