CHttpServer

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
#include
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對象