<编者按:CGI 并不是实现网页交互式功能的唯一途径,你可以换种方法>
如果仅仅是为了描述指定的页面,HTML就足够了,但当你需要有象留言簿,计数器和在线订购这样的功能时候,HTML就帮不了你多少忙了,这些功能需要在服务器内部实现,最常见的方法是通过CGI (公共网关接口), 但大部分服务器为了可以同浏览器交互,提供了扩展HTML功能的接口。
CGI脚本是在服务器上执行的,以便响应用户的请求。CGI可让网管们添加些常见功能,如计数器和日期/时间的显示, 在线订购表单, 聊天页面和搜索引擎。
CGI的流行基于多种原因:许多事先写好的脚本可以免费得到,其中的大部分来自不同的平台,并可在常见的web服务器上运行。但是,CGI还是存在几个缺点:每当一个CGI脚本被调用时,它就会在服务器机器上创建一个新的进程,使得服务器的响应时间变长;同时,如果CGI脚本设置得不正确的话,服务器上将会出现安全漏洞,使得网站变得脆弱,易受黑客攻击;另外一个问题是保存状态较困难,即如何保存客户对不同的HTTP请求的信息。
用于扩展和补充服务器功能的另一个可行的方法就是应用编程接口(API)。API可以让开发者修改服务器的预定行为,并赋予其新功能。当服务器的预定功能被修改时,(例如,在事务处理时,服务器使用API模块里的代码,而不采用其原来的代码。当服务器的功能扩充时,比如说,添加了数据库存取功能--API就起着服务器和应用软件之间的接口的作用。
象这样,不管是修改还是扩充服务器的功能,开发者不需要改变服务器的原来的代码,也不必重新编译和链接服务器代码。相反,新代码是放在DLL(动态链接库)中,服务器在运行的时候动态链接它。(Apache Web 服务器却是个例外,你必须把添加的新代码重新编译,并同服务器代码一起重新链接。)
除了克服了CGI的某些缺点外,API还具有其它特色和优点,例如可以和服务器共享数据和通信资源,可以共享函数库,以及在鉴定和出错处理方面具有独特的功能。API另外一个优点是能够记忆状态,因为API应用程序在客户发来请求时驻留在内存,当该客户进行另外一次请求时,客户的信息已经被保存下来,可以被再次使用。
尽管如此,API方法仍存在缺点。同CGI不同的是,API的功能是同特定的服务器相关的,每种服务器的API都各自不同。有缺陷的API代码可以使得服务器瘫痪。开发代码时的复杂度也有所增加,需要管理多个进程,运行结束后,还要释放内存。
本文将主要讨论两种服务器产品的API,即Netscape的服务器和微软的Internet Information Server。我们不打算对每种服务器的API功能的规格进行详细讨论。
下一页 | |
Netscape服务器的API |