Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136505
  • 博文数量: 25
  • 博客积分: 389
  • 博客等级: 一等列兵
  • 技术积分: 838
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-23 14:18
文章存档

2013年(20)

2012年(5)

分类: 服务器与存储

2013-03-08 20:34:40

HTTP头中Set-Cookie选项的解释

    我们在一些留言本、BBS讨论区发贴时常会出现这种现象:当进入发贴界面时,在要求填写用户名和密码的地方就已经自动地填上了你的资料,这是怎么回事呢?这是因为程序中引入了COOKIE技术的缘故。原来在你第一次登录时,程序就已在你的电脑中安装了一个COOKIE信息包,在你今后登陆时电脑就自动检索你的COOKIE并取出信息包的信息供程序调用,所以出现上面所述的现象。

    COOKIE只不过是CGI程序要求浏览器持有的一个信息包,这个信息包可以由CGI程序在任何时候收回。每当CGI程序要求创建COOKIE 时,COOKIE可以从服务器传送到浏览器所属的子目录下(通常是保存在C:\WINDOWS\Temporary Internet Files的目录下,这个过程称为COOKIE的安装。

    COOKIE的安装和读出通常都由一个CGI模块来完成,下面我就将此模块的原代码公布给大家,有了这个COOKIE模块我们在编写程序时如要应用COOKIE技术可以说易如反掌。

COOKIE的语法:

HTTP Cookie的发送是通过http头部来实现的,他早于文件的传递,头部Set-Cookie的语法如下:

  1. Set-cookie:name=name;expires=date;path=path;domain=domain;secure
  2. name=name // 需要设置cookie的值(name不能使用";"","),有多个name值时用";"分隔例如:name1=name1;name2=name2;name3=name3
  3. expires=date //cookie的有效期限,格式为:expires="Wdy,DD-Mon-YYYY HH:MM:SS"
  4. path=path //设置cookie支持的路径,如果path是一个路径,则cookie对这个目录下的所有文件及子目录生效,例如:path="/cgi-bin/",如果path是一个文件,则cookie指对这个文件生效,例如:path="/cgi-bin/cookie.cgi"
  5. domaindomain=domain //对cookie生效的域名,例如:domain="gzdzw.51.net"
  6. secure //如果给出此标志,表示cookie只能通过SSL协议的https服务器来传递,cookie的接收是通过设置环境变量HTTP_COOKIE来实现的,CGI程序可以通过检索该变量获取cookie信息

阅读(3676) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~