Perl 教程 之 Perl CGI编程 6

简介: Perl CGI教程介绍了CGI(Common Gateway Interface)是一种让服务器与客户端HTML交互的程序接口。GET方法通过URL传递编码数据,例如`/cgi-bin/test.cgi?name=百度&url=http://www.baidu.com`。CGI脚本示例展示了如何解析GET请求中的参数并生成HTML响应。注意,GET请求可能出现在浏览器历史和缓存中,不适合敏感数据传输,并且有长度限制。

Perl 教程 之 Perl CGI编程 6

Perl CGI编程

什么是CGI

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

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

使用GET方法传输数据

GET方法发送编码后的用户信息到服务端,数据信息包含在请求页面的URL上,以"?"号分割, 如下所示:

GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
简单的url实例:GET方法
以下是一个简单的URL,使用GET方法向test.cgi程序发送两个参数:

/cgi-bin/test.cgi?name=百度&url=http://www.baidu.com
以下为test.cgi文件的代码:

实例

!/usr/bin/perl

local ($buffer, @pairs, $pair, $name, $value, %FORM);

读取文本信息

$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "GET")
{
$buffer = $ENV{'QUERY_STRING'};
}

读取 name/value 对信息

@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$name = $FORM{name};
$url = $FORM{url};

print "Content-type:text/html\r\n\r\n";
print "

";
print "";
print '';
print '';
print "";
print "";
print "

$name网址:$url

";
print "";
print "";

1;
查看浏览器,输出结果

目录
相关文章
|
4月前
|
存储 存储控制器 Windows
错误代码0x80070570解决办法
错误代码0x80070570通常与文件系统损坏或硬件问题相关,以下是综合解决方案:
2239 24
|
前端开发 Java 数据库连接
【Java笔记+踩坑】SpringBoot——基础
springboot三种配置文件及其优先级、多环境配置、springboot整合junit,mybatis、ssmp综合图书案例
【Java笔记+踩坑】SpringBoot——基础
|
机器学习/深度学习 数据采集 数据挖掘
【机器学习】普通最小二乘法和ridge回归有什么区别?
【5月更文挑战第21天】【机器学习】R-squared系数有什么缺点?如何解决?【机器学习】普通最小二乘法和ridge回归有什么区别?
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
1248 0
|
前端开发 JavaScript
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
204 0
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
|
安全 Linux Apache
【建站系列教程】6、.htaccess文件的url重写规则-网页伪静态化
【建站系列教程】6、.htaccess文件的url重写规则-网页伪静态化
398 1
|
数据挖掘 数据格式
R语言- ComplexHeatmap 绘制复杂热图示例
ComplexHeatmap是R语言中用于绘制复杂热图的一个重要包。它提供了一种灵活、高效、易于定制的方法来绘制热图,并支持多种数据类型和数据格式,支持包括多种热图类型,包括基本热图、聚类热图、分组热图、矩阵热图等。用户可以根据自己的需求选择不同的热图类型,并进行灵活的定制。在生物信息学、医学、生态学等领域得到广泛应用。 本文将通过一个复杂热图的创建示例分享 ComplexHeatmap的语法规则。
1398 0
|
Python
一日一技:如何从 URL 中快速提取域名?
一日一技:如何从 URL 中快速提取域名?
511 0
|
SQL 关系型数据库 MySQL
NineData:强大的ClickHouse GUI管理工具
NineData除了可以支持以GUI的方式访问和管理ClickHouse之外,NineData还支持MySQL到ClickHouse的数据迁移/同步/复制功能,相比ClickHouse内置的集成引擎,NineData很好的解决了上游MySQL DDL变更时的链路稳定性以及复制时对象映射等问题,可以帮助用户高性能、高效率、高稳定性的完成从MySQL到ClickHouse的数据复制。
1575 0
NineData:强大的ClickHouse GUI管理工具
|
存储 机器学习/深度学习 人工智能
什么是Polygon马蹄链Matic智能合约系统开发丨Polygon马蹄链Matic智能合约系统开发(方案及逻辑)
  马蹄链(Horse Chain)是一种基于区块链技术的数字货币,它由马蹄链网络发行和维护。区块链是一种分布式数据存储技术,它通过使用密码学方法,在不同的计算机节点之间共享数据,形成一条链式结构。每个节点都可以存储和传递数据,并通过共识机制确保数据的安全性和可靠性。