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\”结束。 |
|