Perl 教程 之 Perl CGI编程 13

简介: Perl CGI教程介绍了CGI(Common Gateway Interface)作为服务器与客户端交互的接口,并讲解了如何使用Cookie来弥补HTTP协议中用户身份验证的不足。Cookie通过设置HTTP头部的Set-Cookie字段,包括name、expires、path、domain和secure属性来实现。在Perl中设置Cookie涉及打印包含这些字段的响应头。示例代码展示了如何设置UserID、Password以及过期时间等Cookie信息。

Perl 教程 之 Perl CGI编程 13

Perl CGI编程

什么是CGI

CGI 目前由NCSA维护,NCSA定义CGI如下:

CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。

CGI中使用Cookie

在 http 协议一个很大的缺点就是不对用户身份的进行判断,这样给编程人员带来很大的不便, 而 cookie 功能的出现弥补了这个不足。

cookie 就是在客户访问脚本的同时,通过客户的浏览器,在客户硬盘上写入纪录数据 ,当下次客户访问脚本时取回数据信息,从而达到身份判别的功能,cookie 常用在身份校验中。

cookie的语法

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

Set-cookie:name=name;expires=date;path=path;domain=domain;secure
name=name: 需要设置cookie的值(name不能使用";"和","号),有多个name值时用 ";" 分隔,例如:name1=name1;name2=name2;name3=name3。
expires=date: cookie的有效期限,格式: expires="Wdy,DD-Mon-YYYY HH:MM:SS"
path=path: 设置cookie支持的路径,如果path是一个路径,则cookie对这个目录下的所有文件及子目录生效,例如: path="/cgi-bin/",如果path是一个文件,则cookie指对这个文件生效,例如:path="/cgi-bin/cookie.cgi"。
domain=domain: 对cookie生效的域名,例如:domain="www.baidu.com"
secure: 如果给出此标志,表示cookie只能通过SSL协议的https服务器来传递。
cookie的接收是通过设置环境变量HTTP_COOKIE来实现的,CGI程序可以通过检索该变量获取cookie信息。
Cookie设置
Cookie的设置非常简单,cookie会在http头部单独发送。以下实例在cookie中设置了UserID、Password 和 expires:

实例

!/usr/bin/perl

print "Set-Cookie:UserID=XYZ;\n";
print "Set-Cookie:Password=XYZ123;\n";
print "Set-Cookie:Expires=Tuesday, 31-Dec-2017 23:12:40 GMT";\n";
print "Set-Cookie:Domain=www.baidu.com;\n";
print "Set-Cookie:Path=/perl;\n";
print "Content-type:text/html\r\n\r\n";
...........其他 HTML 内容

目录
相关文章
|
机器学习/深度学习 算法 Python
【SSA-LSTM】基于SSA-LSTM预测研究(Python代码实现)
【SSA-LSTM】基于SSA-LSTM预测研究(Python代码实现)
393 0
【面试问题】StampedLock 理解与使用
【1月更文挑战第27天】【面试问题】StampedLock 理解与使用
|
存储 缓存 网络协议
CDNJS/UNPKG/JSDelivr 太慢用不了,换成这些国内高速镜像
npm cdn, cdnjs, unpkg, jsdelivr, zstatic, zstatic.net, s4.zstatic.net
18102 4
|
JSON 监控 API
咨询电商平台API的调用方法!
随着电子商务的快速发展,电商平台间的竞争愈加激烈。为了提供更加优质的服务,很多电商平台会开放其商品API数据,允许第三方开发者利用这些数据创建各种应用。本文将对商品API数据的概念、获取方式以及在电商中的应用进行探讨,并使用具体代码示例进行说明
咨询电商平台API的调用方法!
|
测试技术
彻底反转:号称「碾压」LLaMA的Falcon实测得分仅49.08,HuggingFace决定重写排行榜代码
彻底反转:号称「碾压」LLaMA的Falcon实测得分仅49.08,HuggingFace决定重写排行榜代码
338 0
彻底反转:号称「碾压」LLaMA的Falcon实测得分仅49.08,HuggingFace决定重写排行榜代码
Idea:Java文件打包可执行的JAR文件,并指定JDK编译版本
Idea:Java文件打包可执行的JAR文件,并指定JDK编译版本
Idea:Java文件打包可执行的JAR文件,并指定JDK编译版本
|
测试技术
【蓝桥杯】蓝桥杯省赛---乘法表(理解题意是关键)
前言 本题来自蓝桥杯官网 题目链接:用户登录
218 0
|
人工智能 网络协议 安全
IPv6时代,中小企业该如何布局?
IPv6要为全世界的每一粒沙子都分配一个IP,你的企业跟上了吗?
378 0
IPv6时代,中小企业该如何布局?
|
Python
Python基础篇11:简单的两种循环(for和while)
Python基础篇11:简单的两种循环(for和while)
|
Web App开发 BI
一起谈.NET技术,SharePoint 2010 BI:Chart WebPart
  Sharepoint 2010增加很多BI的特性,Chart WebPart功能和asp.net的中chart控件基本一样,可以通过使用基于 Web 的配置向 SharePoint 网站添加丰富的图表,将图表连接到各种来源的数据,例如 SharePoint 列表、外部列表、业务数据服务、Excel Services 和其他 Web 部件。
926 0