cbSize | 结构的大小。
|
dwVersion | HTTP_FILTER_REVISION的版本信息。HIWORD中包含了主版本号,LOWORD中包含了次版本号。
|
ConnID | 由HTTP服务器分配的唯一数字。它不能被修改。
|
dwHttpStatusCode | 当完成请求时当前事务的状态。可能是下列值之一:
· | HTTP_STATUS_BAD_REQUEST
| · | HTTP_STATUS_AUTH_REQUIRED
| · | HTTP_STATUS_FORBIDDEN
| · | HTTP_STATUS_NOT_FOUND
| · | HTTP_STATUS_SERVER_ERROR
| · | HTTP_STATUS_NOT_IMPLEMENTED
|
|
lpszLogData | 大小为HSE_LOG_BUFFER_LEN的缓冲区。包含了当前事务的与ISA相关的以null结尾的登记信息字符串,这个登记信息将被输入到HTTP服务器日志。出于管理的目的,为HTTP服务器和ISA事务维护一个日志文件会非常有用。
|
lpszMethod | 生成请求的方法。与CGI变量REQUEST_METHOD等价。
|
lpszQueryString | 包含查询信息的以null结尾的字符串。与CGI变量QUERY_STRING等价。
|
lpszPathInfo | 以null结尾的字符串,包含了客户给出的附加路径信息。与CGI变量PATH_INFO等价。
|
lpszPathTranslated | 以null结尾的字符串,包含了转换路径。与CGI变量PATH_TRANSLATED等价。
|
cbTotalBytes | 要从客户端接收的字节总数。与CGI变量CONTENT_LENGTH等价。如果这个值为0xffffffff,则有4G或更多的数据。在这种情况下,必须调用CHttpServerContext::ReadClient直到没有更多的数据。
|
cbAvailablelpbData | 所指向的缓冲区的可能容量。如果cbTotalBytes与cbAvailable相同,变量lpbData指向的缓冲区将包含了客户发出的所有数据。否则cbTotalBytes将包含接收到的数据的总字节数。ISA将需要适用回调函数CHttpServerContext::ReadClient来读出数据的剩余部分(从偏移为cbAvailable的位置开始)。
|
lpbData | 指向一个大小为cbAvailable的缓冲区,其中包含了客户发出的数据。
|
lpszContentType | 以null结尾的字符串,包含了客户发出数据的内容的类型。与CGI变量CONTENT_TYPE等价。
|
GetServerVariable | 这个函数将与HTTP连接或服务器本身有关的信息(包括CGI变量)拷贝到一个缓冲区中。GetServerVariable接收如下的参数:
· | hConn | 连接的句柄。
| · | lpszVariableName | 以null结尾的字符串,指明被要求的是哪个变量。变量的名字为:
|
变量名 | 描述
ALL_HTTP | 所有还没有被解析为一个上面的变量之一的HTTP头。这些变量的形式为:HTTP_<起始域名>
| AUTH_PASS | 当客户提供密码时,这将获得与REMOTE_USER对应的密码。它是一个以null结尾的字符串
| AUTH_TYPE | 包含了使用的鉴定的类型。例如,如果使用了Basic鉴定,该字符串为“Basic”。对于WindowsNT Challenge-response,这个字符串为“NTLM”。其它鉴定模式将具有别的字符串。因为可以在Internet服务器中加入新的鉴定类型,所以要列出所以可能的字符串是不现实的。如果该字符串为空,则没有使用鉴定
| CONTENT_LENGTH | 脚本能够期望从客户接收的字节数
| CONTENT_TYPE | 在POST请求的主体部分提供的有关内容类型的信息
| GATEWAY_INTERFACE | 服务器支持的CGI规格的修订版。当前的版本为CGI/1.1
| HTTP_ACCEPT | 特殊情形的HTTP头。Accept的值:连结的域,通过“,”隔开。例如,如果下面的几行代码是HTTP头的一部分: accept:*/*;q=0.1 accept:text/html accept:image/jpeg 那么HTTP_ACCEPT变量将具有以下值: */*;q=0.1,text/html,image/jpeg
| PATH_INFO | 附加的路径信息,与客户给定的相同。这个构成了URL中在脚本名之后,而在查询字符串(如果有)之前的部分
| PATH_TRANSLATED | 这是PATH_INFO的值,但是还把一些虚拟路径名扩展到了目录信息中。
| QUERY_STRING | 在引用该脚本的URL中?后面的信息
| REMOTE_ADDR | 客户的IP地址
| REMOTE_HOST | 客户的主机名字
| REMOTE_USER | 这里包括了客户提供,经服务器鉴定的用户名
| REQUEST_METHOD | HTTP的请求方法
| SCRIPT_NAME | 要指向的脚本程序的名字
| SERVER_NAME | 服务器的主机名(或IP地址),与在引用自己的URL中出现的一样
| SERVER_PORT | 接收到请求的TCP/IP端口
| SERVER_PROTOCOL | 与请求相关的信息获取协议的名字和版本。通常是HTTP/1.0
| SERVER_SOFTWARE | CGI程序运行的Web服务器的名字和版本
| |
|
lpvBuffer | 指向缓冲区的指针,该缓冲区用于接收请求的信息。
|
lpdwSize | 指向一个DWORD值的指针,该值指明了缓冲区可以容纳的字节数。如果成功地结束,DWORD中包含了传送到缓冲区内的字节数目(包括结束符null)。
|
WriteClient | 从指定的缓冲区向客户发送信息。WriteClient具有如下参数:
· | ConnID | HTTP服务器分配的唯一的连接数。
| · | Buffer | 指向要写入数据的缓冲区的指针。
| · | lpdwBytes | 指向要写入的数据的指针。
| · | dwReserved | 为将来的用途保留。
|
|
ReadClient | 将Web客户的HTTP请求中的信息读入调用者提供的缓冲区。ReadClient具有如下参数:
· | ConnID | HTTP服务器分配的唯一的连接数。
| · | lpvBuffer | 指向接收要求的信息的缓冲区的指针。
| · | lpdwSize | 指向DWORD值的指针,该值指明缓冲区能够获得的字节数。*lpdwSize中包含了实际传送到缓冲区的字节数。
|
|
ServerSupportFunction | 向ISA提供一些通用目的函数,例如与HTTP服务器实现相关的函数。 ServerSupportFunction具有如下参数:
· | hConn | 连接句柄。
| · | dwHSERRequest | HTTP服务器扩展值。可能的取值和相关参数的列表参见 CHttpServerContext::ServerSupportFunction。
| · | lpvBuffer | 与HSE_REQ_SEND_RESPONSE_HEADER一起使用的时候,它指向一个以null结尾的字符串(例如,“401 Acess Denied”)。如果这个缓冲区为空,这个函数将发出缺省的响应“200 OK”。与HSE_REQ_DONE_WITH_SESSION一起使用的时候,它指向一个DWORD值,指明了请求的状态代码。
| · | lpdwSize | 与HSE_REQ_SEND_RESPONSE_HEADER一起使用的时候,它指向ldwDataType缓冲区的大小。
| · | lpdwDataType | 以nll为结尾的字符串,指向将与头一起发送的可选的头或数据。如果为NULL,这个头将以一组“\r\n”结束。
|
|