第二部分:第8章编写CGI程序 8.2.1公共网关接口 网络服务器只是一个最基础的部分,它可以输出HTML文件到浏览 器,包括其它的可识别的MIME类型的文件。但它并不支持一些高 级操作,比如进入数据库后台并返回数据库的请求给浏览器。为了 加强网络服务器的功能,于是CGI就产生了。服务器和同一台主机 上的CGI程序进行对话后,CGI应用程序就可以替服务器完成它无 法完成的任务。比如进入数据库后台或执行复杂的搜索任务。应用 CGI的网络服务器通常要比那些不用CGI的服务器可以发送更多的 信息。 2004.11.3 A|程序设计 6
2004.11.3 AI程序设计 6 第二部分:第8章 编写CGI程序 8.2.1 公共网关接口 • 网络服务器只是一个最基础的部分,它可以输出HTML文件到浏览 器,包括其它的可识别的MIME类型的文件。但它并不支持一些高 级操作,比如进入数据库后台并返回数据库的请求给浏览器。为了 加强网络服务器的功能,于是CGI就产生了。服务器和同一台主机 上的CGI程序进行对话后,CGI应用程序就可以替服务器完成它无 法完成的任务。比如进入数据库后台或执行复杂的搜索任务。应用 CGI的网络服务器通常要比那些不用CGI的服务器可以发送更多的 信息
第二部分:第8章编写CGI程序 8.2.1.1公共网关 公共”这个词代表能被所有的网络服务器接受的协议。“网关”这 个词表示获得信息的行为,就像通过一个门或关口进入另一端的程 序进程一样。抽象地说,网络服务器是网关的一端,而CGI应用程 序表示网关的另一端,它们通过CGI彼此进行对话。 2004.11.3 A|程序设计
2004.11.3 AI程序设计 7 第二部分:第8章 编写CGI程序 8.2.1.1 公共网关 • “公共”这个词代表能被所有的网络服务器接受的协议。 “网关”这 个词表示获得信息的行为,就像通过一个门或关口进入另一端的程 序进程一样。抽象地说,网络服务器是网关的一端,而CGI应用程 序表示网关的另一端,它们通过CGI彼此进行对话
第二部分:第8章编写CGI程序 8.2.1.2流 我们所说的术语流,是指信息处理时,每次只能处理数据队列中的一个字节。 就好像一根管道,它的直径只能允许通过一个字节,这些字节以流的形式从 通道的另一端流出,每次只有一个字节。 正如水不能同时在水管中朝两个方向流动一样,程序中的字节流也不能同时 进行读和写操作。数据或者从流中输岀(通常被称作可读流),或者输入到 流中(可写流),但在单个程序中不能对同一个流同时进行读写操作。 对CGI程序来说,字符是ANS格式的,是八位的字符。这一点以后必须要注 意,因为 Visual Prolog默认的是∪ NICODE字符,它是十六位字符。 Visual Prolog中有专门用来接收ANSI字符流的谓词,所以处理流并不是 问题。最后需要指出的是,当我们浏览因特网的时候,数据流通过因特网通 道流出到浏览器,一次只有一个字节。我们甚至注意不到他的通过,因为 旦单个字符到达浏览器,他们很快被组合起来,所以我们看到的好象是那些 字节同时到达。 2004.11.3 A|程序设计 8
2004.11.3 AI程序设计 8 第二部分:第8章 编写CGI程序 8.2.1.2 流 • 我们所说的术语流,是指信息处理时,每次只能处理数据队列中的一个字节。 就好像一根管道,它的直径只能允许通过一个字节,这些字节以流的形式从 通道的另一端流出,每次只有一个字节。 • 正如水不能同时在水管中朝两个方向流动一样,程序中的字节流也不能同时 进行读和写操作。数据或者从流中输出(通常被称作可读流),或者输入到 流中(可写流),但在单个程序中不能对同一个流同时进行读写操作。 • 对CGI程序来说,字符是ANSI格式的,是八位的字符。这一点以后必须要注 意,因为Visual Prolog默认的是UNICODE字符,它是十六位字符。 Visual Prolog中有专门用来接收ANSI 字符流的谓词,所以处理流并不是 问题。最后需要指出的是,当我们浏览因特网的时候,数据流通过因特网通 道流出到浏览器,一次只有一个字节。我们甚至注意不到他的通过,因为一 旦单个字符到达浏览器,他们很快被组合起来,所以我们看到的好象是那些 字节同时到达
第二部分:第8章编写CGI程序 8.2.1.3M|ME类型 MIME( Multipurpose internet Mail Extensions)比较确切的中文名称 为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范, 基本内容定义于RFC2045-2049。 ·MIME的目标之一是在数据文件和用于显示和编辑该文件类型的应用程序之 间建立联系。MIME通过为每种数据文件提供一个内容类型来实现这一点 MIME类型是 Internet的命名数据类型的一个标准.数据类型名由两部分组 成,第一部分是说明数据的基本类型,如图像、视频、音频、文本等。由于 文本有不同的类型,如C源程序、英文文本,以及保存图像有多种格式,所 以数据类型的第二部分是用来说明它的特殊类型。 Image/gⅰf就是一个恰当 的例子。第一部分 mages说明它是一个图像文件,第二部分gf说明它是以 GIF格式保存的。 2004.11.3 A|程序设计
2004.11.3 AI程序设计 9 第二部分:第8章 编写CGI程序 8.2.1.3 MIME类型 • MIME(Multipurpose Internet Mail Extensions)比较确切的中文名称 为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范, 基本内容定义于RFC 2045-2049。 • MIME的目标之一是在数据文件和用于显示和编辑该文件类型的应用程序之 间建立联系。MIME通过为每种数据文件提供一个内容类型来实现这一点。 • MIME类型是Internet的命名数据类型的一个标准. 数据类型名由两部分组 成,第一部分是说明数据的基本类型,如图像、视频、音频、文本等。由于 文本有不同的类型,如C源程序、英文文本,以及保存图像有多种格式,所 以数据类型的第二部分是用来说明它的特殊类型。image/gif就是一个恰当 的例子。第一部分images说明它是一个图像文件,第二部分gif说明它是以 GIF格式保存的
第二部分:第8章编写CGI程序 8.2.1.3M|ME类型 Status L Http/1.0 200 Ok 在信息以流的形式被发te;dy,2-9e-9415:94:092 Server. CSA/2.3 MIME Content-type 送到浏览器的同时,服 MIME-version: 1.0 Content-type: text/html Last-mocifled: Friday, 10-Feb-95 16: 03: 27 GMT 务器会在流的开头加入 Content-1 ength:145 biank iine, containing only CRLFj 报头,包括数据的m MIME类型。图8.1就是 title> Test HTML file </title> s/head> 个典型的例子,它说 <body> The 明了从服务器发送到浏 h1> This is a test files/hIs sp> So what did you expect, art? 览器的信息的格式 </body> /html 图81服务器到浏览器的信息格式 2004.11.3 A|程序设计 10
2004.11.3 AI程序设计 10 第二部分:第8章 编写CGI程序 8.2.1.3 MIME类型 • 在信息以流的形式被发 送到浏览器的同时,服 务器会在流的开头加入 报 头 , 包 括 数 据 的 MIME类型。图8.1就是 一个典型的例子,它说 明了从服务器发送到浏 览器的信息的格式。 图8.1 服务器到浏览器的信息格式