获得WININET.H这个视窗帮助文件的万维网节点:
http://www.microsoft.com/intdev/sdk/docs/wininet/default.htm [注:好象也没了!:-( (译者)]
一般来说,微软因特网开发者的网上之家是微软节点的 INTDEV 部分。
除了WININET和ICP之外,另一个为Delphi支持的关键技术就是ISAP。正如微软公司文档中所描述的,这项技
术能使您“‘写入’服务器端的原本和过滤本,从而扩充微软因特网信息服务和其他ISAPI万维网服务”。
如果您需要找到关于ISAPI的描述,可以去:
http://www.microsoft.com/intdev/sdk/servapi.htm [注:上帝保佑您!;-) (译者)]
在本文最后,附加了一个名为HTTPEXT.PAS的关键的ISAPI文档的拷贝。
微软公司免费发布的因特网控制包(ICP)是一个OCX/ActiveX控制集,您可以在Delphi中把它们拖放到应用
程序上(Delphi2.0中包含这些控件)。他们提供了创建Delphi应用程序的即时支持,他们知道如何浏览网页、
如何应用FTP、WINSOCK和其他因特网技术。如果您的Delphi拷贝中没有包含这些控件,那么您在使用它们之
前您应该把这些文档添加进Delphi所在的目录中的Lib目录下。这些文档位于上面提及的链接中的Borland的
INDEX.HTML站点下。在本文中我没有提到ICP控件,但是任何对这项技术有兴趣的人应该明确确认他拥有这些
控件的拷贝。
您可以从我的站点下载我的Pascal应用文件,他们的名字是STRBOX.PAS 和 MATHBOX.PAS。
经常察看一下这个站点上的关于本文提到的信息的更新情况是很有好处的。
在这里我假设读者对于Delphi和Object Pascal都很熟悉,并且读者对于因特网,HTML,浏览器和万维网服
务器有基本的了解。
ISAPI
ISAPI是一项很容易使用然而功能强大的技术,它能够让您扩充因特网信息服务的功能。这项技术随WindowsNT
4.0附送,让您在您的服务器上建立WEB、FTP和GOPHER站点。同时这项技术与WindowsNT3.51 Server[注:指服
务器版本,另一个版本是工作站版本(译者)]兼容。
在过去,扩充网页服务器的最佳办法是建立CGI应用程序。它们是强有力的工具,但是也被他们的执行格式所
限制[注:如PERL是解释执行的(译者)]。当您从浏览其上发出一个基于CGI的请求到服务器上时,这个CGI
应用程序将极有可能先被强制装入内存中,这会消耗很多时间。而且,在某些环境下,CGI技术显得稍微难用
了一点。
ISAPI是一种通过写入DLLs[注:动态链结程序(译者)]从而替代CGI应用的方法。您也可以通过ISAPI来写
过滤文本,但这项技术我不会在本篇中提及。同CGI相比,ISAPI更容易使用,而且它更快,同时能更好地利
用
系统资源。在下面几点中,我将详细地介绍为什么ISAPI DLLs比CGI应用要更为出色:
ISAPI DLLs与HTTP服务位于相同的地址,因此他们能够从服务器上直接存取HTTP服务。与CGI应用相比,它们
能更快地装入内存;当他们在服务器上发出请求时,所需的停悬的时间[注:指发出请求到接受服务器应答的
时间(译者)]要少的多。这点当服务器的负荷很重时更加重要。
您可以控制DLLs何时被装载和卸载。例如:您可以在第一次尝试请求时预先装载DLLs;当它们不被使用时卸载
这个ISAPI应用DLLs以便释放
系统资源。
正如前文所述,您可以利用ISAPI写过滤文本[注:一般指C/S结构中的脚本(译者)],更具微软的文档,您可
以通过ISAPI过滤文本做下面这些事情:
用户授权方案
压缩
加密
登入
通信分析或其他请求分析(例如,寻找 "....etcpassword" 中的请求)
在本文中,我会着重介绍如何编写返回数据集的DLLs,或者是如何与运行浏览器的用户进行简单的联系。
ISAPI 基础
HTTPEXT.PAS文件包含了使用ISAPI的关键声明。这个文件应随1996年6月以后发表的Delphi版本分发。它也可
以在Borland的站点上找到,在本文的ISAPI部分附有这份文档。因为这是基于NT的技术,您必须使用Delphi2.0

发表评论