⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 61.htm

📁 水木清华的BBS文章
💻 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 + -