CGI接口介绍

CGI---公共网关接口 1、什么是CGI CGI:common gateway interface,公共网关接口 作用:,对客户端提交的HTML页面进行数据处理的接口。 CGI的处理流程: (1)web服务器每接收到一个请求,就会fork()一个子进程运行CGI程序 (2)当CGI程序数据处理完之后,web服务器就会杀死该子进程。 2、CGI的缺点 CGI的缺点: (1)频繁地创建和销毁进程 (2)导致web服务器效率低下,无法处理高并发情况 3、fastCGI 为了解决CGI的缺点,提出了很多的改进方法。这里我们介绍fastC 阅读详情

这里写图片描述

1.CGI定义:
CGI(CommonGateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI程序在服务器端执行,并可以和Web服务器在同一主机上。常用的CGI语言有Perl、shell、Python,在windows上也可以用C、C++或Java等进行编写。

2.CGI功能:
绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。

3.CGI运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。

4.CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。

5.CGI服务器配置:
在许多服务器cgi-bin是仅能够放置CGI脚本的目录。

这里写图片描述

在Windows平台上将C或C++写好的程序的Debug或Release版本的.exe程序拷贝到cgi-bin的目录下(如上图所示),将.exe改为.cgi也可同样运行,如下2个图。

这里写图片描述

这里写图片描述

cgi-bin目录是存放CGI脚本的地方。这些脚本使WWW服务器和浏览器能运行外部程序,而无需启动另一个程序。它是运行在Web服务器上的一个程序,并由来自于浏览者的输入触发。

CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。

配置:根据所使用的服务器类型以及它的设置把CGI程序放在某一特定的目录中或使其带有特定的扩展名。

CGI脚本是怎样工作的?
CGI脚本由服务器调用, 基于浏览器的数据输入. 其工作原理如下:
1. 一个URL指向一个CGI脚本. 一个CGI脚本的URL能如普通的URL一样出现,区别于.htm/.html静态URL,CGI的URL是动态URL。如http://xxxx.com/cgiurl
2. 服务器CGI接收浏览器的请求, 按照那个URL指向对应的脚本文件(注意文件的位置和扩展名),执行CGI脚本.
3. CGI脚本执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序.
4. CGI脚本产生某种Web服务器能理解的输出结果.
5. 服务器接收来自脚本的输出并且把它传回浏览器,让用户了解处理结果。

这里写图片描述

CGI的输入/输出方法:CGI程序通过标准输入(STDIN)和标准输出(STDOUT)来进行输入输出,STDIN和STDOUT是两个预先定义好的文件指针。你可以利用文件读写函数来对其进行操纵。

此外CGI程序还通过环境变量来得到输入,只不过环境变量中提供的是一些常用的信息,并且通常不包括用户在WEB页面中输入的信息(除使用下面讲的GET方法时,通过检查环境变量QUERY_STRING来得到输入数据),而STDIN通常用来传递用户输入的信息。

在输入时所使用的POST/GET方法:在WEB页面向CGI发送数据时通常采用两种方法:GET/POST,GET方法将数据附加在URL后发送,如:/cgi/a_cgi_test.exe?your_data,CGI程序通过检查环境变量QUERY_STRING来得到输入数据。

GET和POST方法的区别

GET方法,它将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。而他的限制是:1) 参数的内容作为URL信息,用户可以看到;2) 有大小的限制。

POST方法,通过环境变量和标准输入传递数据给CGI程序,因此POST方法可较方便地传递较多的数据给CGI程序。

CGI接口标准包括标准输入、环境变量、标准输出三部分。

  1. 标准输入
    CGI程序像其他可执行程序一样,可通过标准输入(stdin)从Web服务器得到输入信息,如Form中的数据,这就是所谓的向CGI程序传递数据的POST方法。这意味着在操作系统命令行状态可执行CGI程序,对CGI程序进行调试。POST方法是常用的方法。

  2. 环境变量
    操作系统提供了许多环境变量,它们定义了程序的执行环境,应用程序可以存取它们。Web服务器和CGI接口又另外设置了自己的一些环境变量,用来向CGI程序传递一些重要的参数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。

  3. 标准输出
    CGI程序通过标准输出(stdout)将输出信息传送给Web服务器。传送给Web服务器的信息可以用各种格式,通常是以纯文本或者HTML文本的形式,这样我们就可以在命令行状态调试CGI程序,并且得到它们的输出。

环境变量

环境变量是文本串(名字/值对),可以被OSShell或其他程序设置 ,也可以被其他程序访问。它们是Web服务器传递数据给CGI程序的简单手段,之所以称为环境变量是因为它们是全局变量,任何程序都可以存取它们。下面是CGI程序设计中常常要用到的一些环境变量。

对于CGI程序来说,它继承了系统的环境变量。CGI环境变量在CGI程序启动时初始化,在结束时销毁。
当一个CGI程序不是被HTTP服务器调用时,它的环境变量几乎是系统环境变量的复制。
当这个CGI程序被HTTP服务器调用时,它的环境变量就会多了以下关于HTTP服务器、客户端、CGI传输过程等项目。

环境变量是一个保存用户信息的内存区。当客户端的用户通过浏览器发出CGI请求时,服务器就寻找本地的相应CGI程序并执行它。在执行CGI程序的同时,服务器把该用户的信息保存到环境变量里。接下来,CGI程序的执行流程是这样的:查询与该CGI程序进程相应的环境变量:第一步是request_method,如果是POST,就从环境变量的len,然后到该进程相应的标准输入取出len长的数据。如果是GET,则用户数据就在环境变量的QUERY_STRING里。

环境变量 意义
SERVER_NAME
CGI脚本运行时的主机名和IP地址
SERVER_SOFTWARE
你的服务器的类型如: CERN/3.0 或 NCSA/1.3.
GATEWAY_INTERFACE
运行的CGI版本. 对于UNIX服务器, 这是CGI/1.1.
SERVER_PROTOCOL
服务器运行的HTTP协议. 这里当是HTTP/1.0.
SERVER_PORT
服务器运行的TCP口,通常Web服务器是80.
REQUEST_METHOD
POST 或 GET, 取决于你的表单是怎样递交的.
HTTP_ACCEPT
浏览器能直接接收的Content-types, 可以有HTTP Accept header定义.
HTTP_USER_AGENT
递交表单的浏览器的名称、版本 和其他平台性的附加信息。
HTTP_REFERER
递交表单的文本的 URL,不是所有的浏览器都发出这个信息,不要依赖它
PATH_INFO
附加的路径信息, 由浏览器通过GET方法发出.
PATH_TRANSLATED
在PATH_INFO中系统规定的路径信息.
SCRIPT_NAME
指向这个CGI脚本的路径, 是在URL中显示的(如, /cgi-bin/thescript).
QUERY_STRING
脚本参数或者表单输入项(如果是用GET递交). QUERY_STRING包含URL中问号后面的参数.
REMOTE_HOST
递交脚本的主机名,这个值不能被设置.
REMOTE_ADDR
递交脚本的主机IP地址.
REMOTE_USER
递交脚本的用户名. 如果服务器的authentication被激活,这个值可以设置。
REMOTE_IDENT
如果Web服务器是在ident (一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值.
CONTENT_TYPE
如果表单是用POST递交, 这个值将是 application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个 multipart/form-data.
CONTENT_LENGTH
对于用POST递交的表单,标准输入口的字节数.

说明: 1. CONTENT_TYPE:如application/x-www-form-urlencoded,表示数据来自HTML表单,并且经过了URL编码
2. REQUEST_METHOD:它的值一般包括两种:POST和GET,但我们写CGI程序时,最后还要考虑其他的情况。

如果采用POST方法,那么客户端来的用户数据将存放在CGI进程的标准输入中,同时将用户数据的长度赋予环境变量中的CONTENT_LENGTH。客户端用POST方式发送数据有一个相应的MIME类型(通用Internet邮件扩充服务:Multi-purpose Internet Mail Extensions)。目前,MIME类型一般是:application/x-wwww-form-urlencoded,该类型表示数据来自HTML表单。该类型记录在环境变量CONTENT_TYPE中,CGI程序应该检查该变量的值。

如果采用GET方法,CGI程序无法直接从服务器的标准输入中获取数据,因为服务器把它从标准输入接收到得数据编码到环境变量QUERY_STRING(或PATH_INFO)。

GET与POST的区别:采用GET方法提交HTML表单数据的时候,客户机将把这些数据附加到由ACTION标记命名的URL的末尾,用一个包括把经过URL编码后的信息与CGI程序的名字分开:http://www.mycorp.com/hello.html?name=hgq$id=1,QUERY_STRING的值为name=hgq&id=1

从服务器获取数据的例子(C语言实现代码):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int get_inputs()
{
int length;
char *method;
char *inputstring;

method = getenv(“REQUEST_METHOD”); //将返回结果赋予指针
if(method == NULL)
    return 1;       //找不到环境变量REQUEST_METHOD
if(!strcmp(method, ”POST”))  // POST方法
{
    length = atoi(getenv(“CONTENT_LENGTH”)); //结果是字符,需要转换
    if(length != 0)
    {
        inputstring = malloc(sizeof(char)*length + 1) //必须申请缓存,因为stdin是不带缓存的。
        fread(inputstring, sizeof(char), length, stdin); //从标准输入读取一定数据
}
}
else if(!strcmp(method, “GET”))
{
    Inputstring = getenv(“QUERY_STRING”);   
    length = strlen(inputstring);
}
if(length == 0)
return 0;
}

获取环境变量的时候,如果先判断“REQUEST_METHOD”是否存在,程序会更健壮,否则在某些情况下可能会造成程序崩溃。因为假若CGI程序不是由服务器调用的,那么环境变量集里就没有与CGI相关的环境变量(如REQUEST_METHOD,REMOTE_ADDR等)添加进来,也就是说“getenv(“REQUEST_METHOD”)”将返回NULL!

CGI数据输出

CGI程序如何将信息处理结果返回给客户端?这实际上是CGI格式化输出。

这个 “脚本输出” 意思是指你的脚本发回服务器的数据. 在UNIX系统中, 输出是发向标准输出, 服务器从那儿检测它. 在其他系统和服务器, 你的脚本输出也许不一样了.

在CGI程序中的标准输出stdout是经过重定义了的,它并没有在服务器上产生任何的输出内容,而是被重定向到客户浏览器,这与它是由C,还是Perl或Python实现无关。

所以,我们可以用打印来实现客户端新的HTML页面的生成。比如,C的printf是向该进程的标准输出发送数据,Perl和Python用print向该进程的标准输出发送数据。

输出头部信息,头部是实际不是文本的一部分,是服务器与浏览器之间的信息协议,你实际看不到。 在CGI程序输出时必须先输出一个CGI标题,标题共有以下三类: Content-type, Location, 和Status. Content-type 是最普遍的。

Location: 标题,指明输出另一个文档的URL,例如 fprintf(stdout,”Location:http://www.vchelp.net/\n\n”);

Content-Type: 标题,指明发送的数据的MIME类型,例如 fprintf(stdout,”Content-Type:text/html\n\n”);

Status: 标题,指明HTTP状态码,例如 fprintf(stdout,”Status:200\n\n”);

有关content-type解释可以见有关HTML的说明, 发出text/html特定编码如下:

这里写图片描述

Content-type, Location, 和Status.后面都要跟一个空行

例如:#!/bin/sh

echo “Content-type: text/html”
echo #空行
echo “”

URL编码

不管是POST还是GET方式,客户端浏览器发送给服务器的数据都不是原始的用户数据,而是经过URL编码的。此时,CGI的环境变量Content_type将被设置,如Content_type = application/x-www-form-urlencode就表示服务器收到的是经过URL编码的包含有HTML表单变量数据。

编码的基本规则是:
变量之间用“&”分开;
变量与其对应值用“=”连接;
空格用“+”代替;
保留的控制字符则用“%”连接对应的16进制ASCII码代替;
某些具有特殊意义的字符也用“%”接对应的16进制ASCII码代替;
空格是非法字符;
任意不可打印的ASCII控制字符均为非法字符。

所以,CGI程序从标准输入或环境变量中获取客户端数据后,还需要进行解码。解码的过程就是URL编码的逆变:根据“&”和“=”分离HTML表单变量,以及特殊字符的替换。

嵌入式Linux下用C语言写后端接口——CGI实现 文章目录简介实验环境下载CGIC库源码配置CGIC编译测试CGI接口编写一个简单的获取表单的CGI接口测试login.cgiCGIC接口API 简介 CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与 Web 服务器交互的一个标准接口。服务器端与客户端进行交互的常见方式多,CGI 技术就是其中之一。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输... 阅读详情

相关推荐

ARM架构下的SLAM部署避坑指南:香橙派AIpro与D435i深度相机的实战解析

本文详细解析了在ARM架构的香橙派AIpro开发板上部署SLAM算法并与Intel D435i深度相机配合的实战经验。内容涵盖系统配置、ROS编译、驱动安装、算法优化等关键步骤,提供了具体的避坑指南和性能调优技巧,帮助开发者在嵌入式平台上高效实现实时SLAM应用。

f0g1h2的博客 983

CGI通用网关接口

CGI 是 Web服务器和程序动态生成数据之间的通用接口服务器和CGI程序之间是通过标准输入输出来进行数据传递的,需要环境变量的协作才可以实现通过浏览器将用户请求送到服务器服务器接收用户请求并交给CGI程序处理CGI程序把处理结果传送给服务器服务器把结果送回到浏览器对于Windows系统而言,还可以通过profile文件进行数据传输(如ini文件)每个CGI程序只能处理一个用户请求,在激活一个CGI程序进程时也创建了属于该进程的环境变量。

wkk的博客 842

Cadence 17.2 OrCAD原理图库实战:从零创建电阻/电容/LED元件(附封装技巧)

本文以Cadence 17.2 OrCAD为核心,详细讲解了如何从零开始工程化地创建电阻、电容、LED等原理图库元件。内容涵盖库架构设计、符号绘制、引脚属性管理、封装关联技巧以及设计规则检查,旨在帮助硬件工程师构建规范、可复用且易于维护的元件库,为高效PCB设计奠定坚实基础。

weixin_29195615的博客 400

CGI详解(原理,配置及访问)

进程A再继续往下执行,但进程A所操作的文件依旧是原来文件的就版本,此时进程A的操作结果将覆盖进程B的操作结果。接下来,CGI程序的执行流程是这样的:查询与该CGI程序进程相应的环境变量:第一步是request_method,如果是POST,就从环境变量的len,然后到该进程相应的标准输入取出len长的数据。服务器和客户端之间的通信,是客户端的浏览器和服务器端的http服务器之间的HTTP通信,我们只需要知道浏览器请求执行服务器上哪个CGI程序就可以了,其他不必深究细节,因为这些过程不需要程序员去操作。

redparrot2008的博客 6540

霍尔安装歪了也能用?揭秘无感FOC中的‘霍尔自学习’黑科技,实现信号线自适应

本文揭秘了无感FOC中的‘霍尔自学习’黑科技,即使霍尔安装歪了或信号线接错,电机仍能平稳运转。该技术通过算法创新解决了传统霍尔方案的安装公差、接线容错和校准成本问题,显著提升了电机控制的可靠性和效率。文章详细解析了自学习算法的实现架构、关键技术及工程实践中的优化方案,展示了其在工业应用中的卓越性能。

weixin_28309571的博客 463

SAP会计凭证导入ABAP开发模板+注意点—附带源码

开发并不仅仅只要考虑实现的功能,只实现功能的是程序,考虑到使用场景的是工程。使用bapi校验创建会计凭证的数据,报错和参数和正式创建一致。用途,防止产生错误的凭证,即使财务凭证可以冲销。正式创建会计凭证。隐藏的坑。

小九啥也不会 1232

什么是CGI(通用网关接口)?

Web Servers are an important part of the internet and the web. Web servers used to serve web sites, web pages, APIs, documents, video images, etc. Web servers are generally designed to be dynamic to r...

cunjiu9486的博客 1879

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

CGI接口原理及实现

CGI接口原理及实现   CGI接口原理及实现(2012-12-7 Over)      1.CGI定义:   CGI(CommonGateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。   2.CGI功能:   绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应

chuanzhilong的博客 1万+

基于R-CNN深度学习的生活垃圾检测与分类系统:数据集、模型和UI界面的完整实现

我们将使用一个公开的垃圾分类数据集来训练我们的模型。一个常见的数据集是TACO数据集(Trash Annotations in Context),该数据集包含多种垃圾类别,适用于垃圾分类任务。TACO数据集中的图像标注了垃圾的类别以及其在图像中的位置,适合用于目标检测任务。图片数据:每张图片中包含不同种类的垃圾。标签文件:每个图像有相应的标签文件,标注了图像中垃圾的类别、位置(通常为边界框坐标)等信息。dataset/images/image1.jpgimage2.jpg......其中,

YOLO 1102

PCL SVD分解求变换矩阵【2026最新版】

该算例使用奇异矩阵分解来求变换矩阵,输入的是同名点坐标输出的是变换矩阵。博客长期更新,本文最近一次更新时间为:2026年5月10日。

点云侠的博客 36万+

CGI (Common Gateway Interface) 通用网关接口 介绍

通用网关接口  Common Gate Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端 Html页面的接口。这样说大概还不好理解。那么我们看一个实际例子: 现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的c...

Ubuntu 14.04配置nfs服务 517

AUTOSAR进阶图解==>AUTOSAR_SWS_ADCDriver

本文深入解析了AUTOSAR ADC Driver的架构设计和技术实现。主要内容包括:1)ADC Driver在AUTOSAR分层架构中的定位及核心功能;2)详细的模块架构设计,涵盖初始化管理、组转换管理、优先级处理等核心子组件;3)全面的配置模型说明,包括主配置类、通用配置、通道配置等关键数据结构;4)状态机机制和操作序列分析。通过分层设计和标准化接口,ADC Driver实现了硬件抽象和软件解耦,提供了良好的可移植性和可维护性。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 786

概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM 各公共网关接口介绍

CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,...

weixin_34178244的博客 114

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

PHP程序员也能用Qwen3Guard-Gen-8B?CGI接口调用方式介绍

通过CGI接口,PHP项目无需重构即可接入Qwen3Guard-Gen-8B大模型,实现多语言内容风险识别。利用现有LAMP架构,结合轻量Python脚本,快速为老旧系统添加智能审核能力,有效应对隐性违规与跨语言内容挑战。

weixin_28809949的博客 421

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

技术储备(一):CGI介绍

通用网关接口(CGI,Common Gateway Interface)是一种Web服务器和服务器端编程进行交互的方式。CGI完全独立于编程语言,操作系统和Web服务器。目前,它是最常见的服务器端编程技术,几乎每一个Web服务器都支持。此外,所有服务器用几乎同样的方式实现它,这样你可以为一个服务器编写CGI脚本,然后分发到任何Web服务器上运行。 就像上面说的,服务器需要一种方法来知道哪些URL映...

vainfanfan的博客 1137

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

WEB之CGI----CGI详解(原理,配置及访问)

一.基本原理  CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。 组成CGI通信系统的是两部分:一部分是html页面,就是在用户端浏览器上显示的页面。另一部分则是运行在服务器上的Cgi程序。它们之间的通讯方式如下...

weixin_39609623的博客 9万+

Python CGI编程

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

2403_89345625的博客 2228

Cgi使用

目录 一、 CGI(通用网关接口)是外部扩展应用程序与 Web 服务器交互的一个标准接口。... 1 二、Cgi编程(根据CGI标准,编写Web服务器运行时的外部扩展应用程序)可以对客户端浏览器输入的数据经web服务器和业务逻辑程序进程进行交互操作。... 2 三、web服务器配置... 3 四、环境变量列表... 3 五、注意的问题... 3 CGI(通用网关接口)是外部扩展应用程序与 Web 服务器交互的一个标准接口。 公共网关接口(Common Gateway Interf...

kuodehai的专栏 4592

[项目][WebServer][CGI机制 && 设计]详细讲解

[项目][WebServer][CGI机制 && 设计]详细讲解

SnowK博客 5078

Python——CGI入门讲解介绍

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: 柠檬精 CGI是什么 CGI全称是“公共网关接口”(Commone Gateway Interface)。 HTTP服务器与你的或其他机器程序进行“交谈”的一种工具,其程序须运行在网络服务器上。[1] 重点理解: Web 服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息进行处理,将相应结果再发送给Web服

Python案例分享,B站视频教程:https://space.bilibili.com/523606542 856

项目 【Http】第二讲---CGI机制的介绍

摘要: 本文深入探讨了CGI(通用网关接口)技术的原理与实现。CGI作为早期实现动态网页的核心机制,通过定义服务器与外部程序的交互标准,使HTTP服务器能够调用脚本或程序处理用户请求并返回动态内容。文章详细分析了CGI的工作流程:通过路径识别CGI程序、利用进程替换调用目标程序、借助管道和环境变量实现父子进程间的双向通信(GET请求参数通过环境变量传递,POST请求正文通过管道传输),并规范CGI程序通过标准输入/输出读写数据。尽管CGI存在性能瓶颈,但其设计思想为理解现代Web动态交互奠定了重要基础。

hi0_6的博客 2111

Apache源代码注释之执行CGI脚本

 节选自《Apache源代码解析-基于Apache0.6.5》第八章。网址:http://www.oldapache.org论坛:http://bbs.oldapache.org邮箱:tsingien@gmail.com  8.1 概述    CGI是Apache生成动态交互式页面的一种方式,CGI的全称是Common Gateway

Apache源代码解析 704

如何理解CGI,PHP-CGI

要了解CGI之前,先要清楚什么时候会用到CGI Web Service(nginx,apache)是内容的分发者,对客户端的请求就行应答。 如果只是请求静态页面index.html,那么Web Service(nginx,apache)就会去找到index.html的位置,直接返回给客户端,在这里的Web Service(nginx,apache)分发的就是静态数据; 如果请求的是动态页面inde...

胡旭国的博客 569
上一篇: bind1st和bind2nd
下一篇: trap 基本介绍
nmglwy
博客等级 码龄15年 8粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值