📄 61.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="12.htm">上一层</a>][<a href="62.htm">下一篇</a>]
<hr><p align="left"><small>发信人: pitts (痛并快乐着), 信区: Delphi <br>
标 题: CGI技术及其开发 <br>
发信站: BBS 水木清华站 (Tue Oct 13 10:00:13 1998) <br>
<br>
作为Internet上最主要的信息管理和组织手段,WWW由一系 <br>
列相应的技术及应用构成,其组成技术包括HTTP、HTML、URL以及 <br>
CGI等。WWW服务器本身提供一些基本功能,以完成客户端的请求 <br>
和自身的管理。但不同的用户有不同的功能要求,其中许多功能是 <br>
WWW服务器本身 不能提供的(比如在线查询等),它必须提供 <br>
一种扩展手段,以允许用户编写扩展应用程序来扩展服务器的功 <br>
能。CGI(CommonGatewayInterface,即通用网关接口)就是这样 <br>
的一种标准扩展技术。下面就CGI的基本技术及其开发进行讨论。 <br>
<br>
一、CGI技术 <br>
1.1CGI的提出 <br>
CGI是外部扩展应用程序与WWW服务器交互的一个标准接口。 <br>
按照CGI标准编写的外部扩展应用程序可以处理客户端(一般是WWW <br>
浏览器)输入的协同工作数据,完成客户端与服务器的交互操作。 <br>
这在实际应用中非常有用,如可以编写CGI外部扩展程序来访问外 <br>
部数据库,客户端用户可以通过它和WWW服务器来进行数据查询。 <br>
CGI一般分两种:标准CGI和缓冲CGI。所有的WWW服务器均 <br>
应支持标准CGI,按标准CGI编写的程序与具体的WWW服务器无关。 <br>
而按缓冲CGI编写的程序与WWW服务器有关。 <br>
1.2CGI的工作原理 <br>
1.标准CGI <br>
客户端、服务器、CGI接口与外部程序间的关系可用图1-1 <br>
表示: <br>
如上图所示,服务器是客户端(如浏览器)与扩展程序之间的 <br>
通道。当客户端的用户完成了一定输入工作(比如填充完HTML文 <br>
档中的FORM表)之后向服务器发出HTTP请求(称为CGI请求), <br>
服务器守护进程接收到该请求后,就创建一个子进程(称为CGI进 <br>
程)。该CGI子进程将CGI请求的有关数据设置成环境变量,在外 <br>
部CGI程序与服务器间建立两条数据通道(标准I/O),然后启动 <br>
URL指定的CGI程序,并与该子进程保持同步,以监测CGI程序的 <br>
执行状态。子进程通过标准输出流将处理结果传递给服务器守护进 <br>
程,守护进程再将处理结果作为应答消息回送到客户端。 <br>
外部CGI程序通过环境变量、命令行参数、标准输入输出与WWW <br>
服务器进行通讯,传递有关参数和处理结果。 <br>
*环境变量:当服务器守护进程创建子进程运行CGI程序时, <br>
设置相应的环境变量和命令行参数,以传递客户端和服务器的有关 <br>
信息给该子进程。 <br>
*命令行参数:命令行参数仅在有HTML文档中有ISINDEX查 <br>
询的情况下使用。 <br>
*标准输入输出:当HTTP请求模式采用POST方式时,CGI程 <br>
序通过标准输入流和有关环境变量来获取客户端传输数据;如采用 <br>
关环境变量来获取客户端传输数据;如采用 <br>
GET方式时,CGI程序直接通过环境变量获取客户端传输数据。当 <br>
CGI程序要返回处理结果(一般为HTML文档)给客户端时,它通 <br>
过标准输出流将该结果数据传递给服务器守护进程。 <br>
2.缓冲CGI <br>
标准CGI使用Stdin/Stdout来进行数据通讯,这是由其最初 <br>
开发环境(Unix操作系统)所决定的。但是许多Windows环境下 <br>
的编程工具(如VB和Delphi等)是不支持这种I/O方式的,这 <br>
时就不能用它们来开发基于标准CGI的应用程序。于是有些服务器 <br>
提出了缓冲CGI的概念。缓冲CGI亦称为WinCGI。 <br>
此时CGI扩展程序与服务器间通过缓冲CGI而不是标准CGI进 <br>
行通讯,而缓冲CGI与服务器间的通讯还是通过标准CGI接口。后 <br>
者由WWW服务器的内置缓冲处理程序实现。这几部分的关系可用图 <br>
1-2表示: <br>
缓冲CGI的工作原理与标准CGI相似,不同的是当服务器守护 <br>
进程接收到客户端的CGI请求时,所建立的CGI子进程将CGI请求 <br>
的有关数据设置成环境变量外,还将它们保存在输入缓冲区中;通 <br>
过缓冲处理程序在外部CGI程序与服务器间建立两条数据通道(输 <br>
入/输出缓冲区)。CGI子进程通过输出缓冲区将处理结果传递给 <br>
服务器守护进程。 <br>
此处外部CGI程序通过环境变量和输入/输出缓冲区与WWW服 <br>
务器进行通讯,传递有关参数和处理结果。此处环境变量的意义同 <br>
上,不过这些环境变量及其相应值保存在输入缓冲区中。此外,输 <br>
迩
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -