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