专注SIP通讯产品与方案

CGI在计算机电话网络的作用

        上面讨论的H'I'ML只提供单向通信能力,客户可以点击请求服务器提供所需的页面,但是反过来服务器向客户请求信息就难以做到。随着Web的广泛使用,越来越多的应用需要客户和服务器之间进行交互式通信,例如电子购物、数据库访问、免费软件散发等都要求客户填登记表、给出搜索关键词、键入个人信息等。为此,HI'ML2.0版本引入了登记表(Form)这一重要的结构。
  登记表定义了多种类型输入框(box),用户可在这些框中写入文字或作出选择,H'I'ML用INPUT标记进行描述,其一般格式为:
(INPUTTYPE="···"NAME="…"VALUE="…"SIEE=…〉其中,
NAME指示变鼠名,用户输入该框的数据就赋值给该变量;VALUE指示该框输人数据的缺省值;SIZE指示该框所占的列数。
登记表已定义的输入框类型有:
.文本(TEXT)框:为输入框的缺省类型,用户需在此类框中键入字符串。
.无线电(RADIO)按钮:单选按钮,用户需在所列的几个选择钮中选择一个。
.开关按钮(CHECKBOX):多选按钮,用户可在所列儿个选择按钮中任选若干个。
·  门令(PASSWORD)框:同文本框,只是用户键入字符串不显示。
.文本域(TEXTAREA)框:同文本框,只是可包含多行文字。
.发送(SUBMIT)按钮:点击此钮,将登记表所有信息送往服务器。
.复位(RESET)按钮:点击此钮,登记表各框回复初态。
.隐形(HIDDEN)框:该框可显示文字,但不能点击或修改。其用途是用户需在多个页面中进行登记选择,某些选项已在前面的页面中选定,在当前页面不允许再作变动。
.图形(IMAGE):用于活性地图和其它可点击图像。用户在地图上点击后,选定像素的座标值赋给指定变量,登记表立即自动返回给服务器。
  如果单选或多选项较多,HI'ML还可提供菜单式选择形式,此时所有选择项列于标记对(SE1ECT〉和(/SE1ECT〉之间。
  登记表信息的发送有3种方式:点击发送按钮;点击活性地图;在只有一个文本框的登记表中,只要简单地回车即可。
整个登记表的内容列于标记对(FORM〉和(/FORM〉之间,FORM带有2个必备参数,其格式为:(FORMACTION="…''METI-10D=…〉
        其中,ACTION指示发送目的地的URL,ME'IlIOD指示发送采用的方法。HTML定义了两种发送方法:GET和POST,也就是登记表的各项信息如何以紧凑的文本形式表示,回送给服务器。
  登记表信息送达后,服务器必须据此进行操作和处理,例如检查口令、核对信用卡、检索数据、回送页面等,这些处理和具体应用有关,并需和数据库等交互,因此必须在服务器机器中设置后台处理程序。由于Web服务器程序可由各单位自行开发,类型各不相同,要使后台程序在任何服务器上都能运行,就需要定义一个服务器和登记表后台处理程序之间的标准接口,通过这个接口,服务器将登记表信息传递给后台程序,后台程序则将处理后的输出信息返回服务器。这-标准接口就称之为CCI。它是WWW实现交互功能的主要E具e通常称遵守CCI标准的服务器侧后台可执行程序为CCI程序,规定放在站点的cgi-bin目录下。可以用任何编程语言书写。
CGI基本原理
  图2.46示出CGI程序和服务器、客户的关系及相关接口。其基本工作过程可以下述例子予以说明。设某部门建立了一个Web网页的索引数据库,可根据关键字或主题进行检索,并想提供给Web用户使用。为此,必须编写一个CGI程序,能对数据库进行操作,且经CGI与Web服务器接口。该CGI程序的URL设为http://www.njupt.edu/cgi-bin/pagesearch,表示该程序名为pagesearch,位于站点www.njupt.edu的cgi-bin目录下。
        当Web用户需使用该服务时,服务器送出登记表,用户填好表格后点击发送按钮,浏览器按(FORM〉中ACTION参数指明的URL建立TCP连接,然后调用MEIHOD参数规定的方法(通常为POST),将登记表中的各项信息经HTTP传给服务器。服务器识别这是对位于C织-bin目录中某页面文件的操作,就将该文件解释为可执行程序,启动该程序,并将客户输入的登记表信息传给此程序,同时设置必要的环境变量,如CONTENT-LENGIB说明输入字符串的长度。
  然后,CGI程序调用库程序对输入信息进行语法分析,将其转换为更易使用的形式,并据此对数据库进行相应的操作。最后,CGI根据操作结果生成输出信息,该信息可以是一个
HTML页面,并将其返回服务器(服务器将其送交客户。由此实现Web的交互过程。
CCI定义了客户至服务器传送登记表数据的两种方法:URL中的查询行(即GET)方法和消息体(即POST)方法;定义了服务器向CCI程序传送数据的三种机制:命令行参数、标准输入(即消息体输入)和环境变量;还定义了CCI程序向服务器返回数据的两种方式:标准输出和透明输出,其中透明输出指的是CCI程序的输出直接送给客户,尤需服务器作任何处理。