CHttpServer

CHttpServer没有基类。
类CHttpServer与CHttpServerContext 一起提供扩展ISAPI兼容的HTTP服务器功能的方法。类CHttpServer 包括Internet Server API (ISAPI)功能,可以处理各种类型的客户请求,包括扩展 DLL。CHttpServer 不能处理来自CGI执行的请求。这些扩展DLL 有时被 Internet ServerApplications调用;然而,它们是DLL,而不是EXE。为了简短,我们将扩展DLL 称为ISA。
要想了解CGI和ISA的区别,请参阅联机文档“Visual C++程序员指南”中的“Internet Server API(ISAPI)扩展”。
当ISAPI HTTP服务器收到客户浏览器的请求时,一个CHttpServer对象被创建并初始化,同时一个CHttpServerContext对象被创建。每个模块中只能有一个CHttpServer 实例存在;但是,对服务器的每一次调用,都有一个ChttpServer-Context对象被创建。一个CHttpServer对象使用多个CHttpServerContext对象,以独立线程运行。此设计允许使用不同的客户连接对CHttpServer对象进行同时的多个调用。CHttpServer对象通过 CHttpServerContext对象与客户或服务器自身进行通讯。
当服务器装载ISA时,它在入口点GetExtensionVersion 调用ISA,获得扩展所基于的指定的版本号。对每个客户请求,HttpExtensionProc成员函数被调用。HttpExtensionProc的缺省 (推荐)实现将读取客户数据并决定要采取什么操作。你可覆盖此成员函数以定制该实现。
其它CHttpServer成员函数处理客户请求、格式化回答并与客户联系。
当一个CHttpServer对象收到客户命令时,文法分析映射将此命令与其类成员函数和参数关联。对每个CHttpServer对象,只有一个文法分析映射被创建。
请参阅“Internet服务器API (ISAPI)文法分析映射”以了解使用文法分析映射宏指令的一般信息。请参阅:BEGIN_PARSE_MAP和END_PARSE_MAP以了解如何创建文法分析映射及处理客户命令的信息。
请参阅下列宏指令介绍,以了解客户命令是如何与成员函数及其参数映射的信息:
·ON_PARSE_COMMAND
·ON_PARSE_COMMAND_PARAMS
·DEFAULT_PARSE_COMMAND
要了解有关使用文法分析映射处理客户命令的信息,请参阅联机文档“Visual C++程序员指南”中的“ISAPI扩展:文法分析映射”。
要了解调试Internet扩展DLL的信息,请参阅“技术指南63”。
#include <afxisapi.h>
请参阅:CHtmlStream, CHtmlStream, CHttpServerContext


CHttpServer类的成员

构造函数
CHttpServer构造一个CHttpServer对象

可覆盖的函数
CallFunction在URL中查找并执行与命令有关的适当函数
OnParseError构造返回给客户的错误描述
OnWriteBody向客户机写数据
HttpExtensionProc使用回调函数读取客户数据并决定采取什么操作
GetExtensionVersion获取DLL所基于的版本号
ConstructStream构造一个CHtmlStream对象
TerminateExtension提供一种安全的方法,清除线程并完成其它关机动作

属性
StartContent将HTML标记插入到返回给客户的CHtmlStream对象中。覆盖以改变或省略缺省标记
EndContent将HTML标记插入到返回给客户的CHtmlStream对象中。覆盖以改变或省略缺省标记
WriteTitle在返回给客户的CHtmlStream对象中的适当HTML标记之间插入标题。覆盖以提供不同标题
GetTitle获取发送给客户的HTML的标题
AddHeader在回答发送给服务器之前添加标题
InitInstance初始化CHttpServer对象