複製鏈接
請複製以下鏈接發送給好友

CHttpServer

鎖定
CHttpServer沒有基類。
類CHttpServer與CHttpServerContext 一起提供擴展ISAPI兼容的HTTP服務器功能的方法。類CHttpServer 包括Internet Server API (ISAPI)功能,可以處理各種類型的客户請求,包括擴展 DLL。CHttpServer 不能處理來自CGI執行的請求。這些擴展DLL 有時被 Internet ServerApplications調用;然而,它們是DLL,而不是EXE。為了簡短,我們將擴展DLL 稱為ISA。
中文名
沒有基類
外文名
CHttpServer
作    用
擴展ISAPI兼容
學    科
程序設計
要想了解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 <afxisapi.h>
CHttpServer類的成員
構造一個CHttpServer對象
可覆蓋的函數
CallFunction
在URL中查找並執行與命令有關的適當函數
OnParseError
構造返回給客户的錯誤描述
OnWriteBody
向客户機寫數據
HttpExtensionProc
使用回調函數讀取客户數據並決定採取什麼操作
GetExtensionVersion
獲取DLL所基於的版本號
ConstructStream
構造一個CHtmlStream對象
TerminateExtension
提供一種安全的方法,清除線程並完成其它關機動作
屬性
StartContent
將HTML標記插入到返回給客户的CHtmlStream對象中。覆蓋以改變或省略缺省標記
EndContent
將HTML標記插入到返回給客户的CHtmlStream對象中。覆蓋以改變或省略缺省標記
WriteTitle
在返回給客户的CHtmlStream對象中的適當HTML標記之間插入標題。覆蓋以提供不同標題
GetTitle
獲取發送給客户的HTML的標題
AddHeader
在回答發送給服務器之前添加標題
初始化CHttpServer對象