Perl 教程 之 Perl CGI编程 8

简介: Perl CGI编程教程讲解了如何通过CGI接口与HTTP服务器交互。文章介绍了CGI的概念,强调使用POST方法传递敏感数据的安全性。示例脚本`test.cgi`演示了处理POST表单数据的方法,读取并显示输入的站点名称和URL。同时,给出了一个HTML表单`test.html`,用于通过POST方法向`test.cgi`提交数据。

Perl 教程 之 Perl CGI编程 8

Perl CGI编程

什么是CGI

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

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

使用POST方法传递数据

使用POST方法向服务器传递数据是更安全可靠的,像一些敏感信息如用户密码等需要使用POST传输数据。

以下同样是 test.cgi ,它也可以处理浏览器提交的POST表单数据:

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 "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else {
$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;
以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是test.cgi文件,test.html 代码如下:

test.html 代码
<!DOCTYPE html>








站点名称:


站点 URL:



浏览器中,执行效果

目录
相关文章
|
存储 机器学习/深度学习 数据采集
物联网 GE-PREDIX
GE-Predix 是通用电气(GE)推出的一个工业互联网平台,旨在通过连接机器、数据与人,实现工业资产的智能管理和优化。该平台支持从设备监控到预测性维护等多种应用,助力企业提升运营效率和创新能力。
1027 3
|
人工智能 Serverless 开发者
基于函数计算FC一键部署Stable Diffusion | 生成你眼中的未来城市
【7月更文挑战第15天】基于函数计算FC一键部署Stable Diffusion | 生成你眼中的未来城市
|
移动开发 Perl
Perl 教程 之 Perl CGI编程 10
Perl CGI教程展示了如何通过CGI程序与HTML表单交互。当用户在HTML页面(test.html)中选择百度或Google并提交后,数据发送到CGI脚本(test.cgi)。脚本解析请求,获取选中的站点($site),然后生成返回的HTML响应,显示用户选择的网站。
126 5
|
Kubernetes 调度 微服务
K8s -- 云原生之路
上周,抽空听了两场云栖大会(一场关于k8s 云原生的发展趋势,一场是关于k8s安全的话题), 这几年, 容器领域的技术,发展太快了,工具层出不穷 , 也越来越容易使用了, 逐渐替代了一些硬件的功能; 传统的运维正面临前所未有的挑战, 如果不了解这个领域的技术,未来可想而知 451 研究说未来 76%的企业将上云, 你觉得呢 ? Auther: Makr.
1881 0
|
6天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
10天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
616 216