HTTP_LOG_FIELDS_DATA 结构 (http.h)

启用 WC3 日志记录时, HTTP_LOG_FIELDS_DATA 结构用于传递为 HTTP 响应记录的字段。

语法

typedef struct _HTTP_LOG_FIELDS_DATA {
  HTTP_LOG_DATA Base;
  USHORT        UserNameLength;
  USHORT        UriStemLength;
  USHORT        ClientIpLength;
  USHORT        ServerNameLength;
  USHORT        ServiceNameLength;
  USHORT        ServerIpLength;
  USHORT        MethodLength;
  USHORT        UriQueryLength;
  USHORT        HostLength;
  USHORT        UserAgentLength;
  USHORT        CookieLength;
  USHORT        ReferrerLength;
  PWCHAR        UserName;
  PWCHAR        UriStem;
  PCHAR         ClientIp;
  PCHAR         ServerName;
  PCHAR         ServiceName;
  PCHAR         ServerIp;
  PCHAR         Method;
  PCHAR         UriQuery;
  PCHAR         Host;
  PCHAR         UserAgent;
  PCHAR         Cookie;
  PCHAR         Referrer;
  USHORT        ServerPort;
  USHORT        ProtocolStatus;
  ULONG         Win32Status;
  HTTP_VERB     MethodNum;
  USHORT        SubStatus;
} HTTP_LOG_FIELDS_DATA, *PHTTP_LOG_FIELDS_DATA;

成员

Base

将此成员初始化为 HTTP_LOG_DATA_TYPE 枚举的 HttpLogDataTypeFields 值。

UserNameLength

用户名成员的大小(以字节为单位)。

UriStemLength

URI 主干成员的大小(以字节为单位)。

ClientIpLength

客户端 IP 地址成员的大小(以字节为单位)。

ServerNameLength

服务器名称成员的大小(以字节为单位)。

ServiceNameLength

ServerIpLength

服务器 IP 地址成员的大小(以字节为单位)。

MethodLength

HTTP 方法成员的大小(以字节为单位)。

UriQueryLength

URI 查询成员的大小(以字节为单位)。

HostLength

主机名成员的大小(以字节为单位)。

UserAgentLength

用户代理成员的大小(以字节为单位)。

CookieLength

Cookie 成员的大小(以字节为单位)。

ReferrerLength

引用者成员的大小(以字节为单位)。

UserName

用户的名称。

UriStem

URI 词干。

ClientIp

客户端的 IP 地址。

ServerName

服务器的名称。

ServiceName

服务的名称。

ServerIp

服务器的 IP 地址。

Method

HTTP 方法。

UriQuery

URI 查询。

Host

请求中的主机信息。

UserAgent

用户代理名称。

Cookie

应用程序提供的 Cookie。

Referrer

引用者。

ServerPort

服务器的端口。

ProtocolStatus

协议状态。

Win32Status

win32 状态。

MethodNum

方法编号。

SubStatus

子状态。

注解

HTTP_LOG_FIELDS_DATA 结构是 httpSendResponseEntityBodyHttpSendHttpResponse 函数中 pLogData) 的可选 (参数,从 HTTP 版本 2.0 API 开始。 HTTP_LOG_FIELDS_DATA 结构指定在响应中记录的字段。

除非传递此结构,否则不会记录响应,即使对 URL 组或服务器会话设置了服务器日志记录属性也是如此。 除非应用程序将 HTTP_LOG_FIELDS_DATA 结构与每个响应一起传递,并且日志记录属性在服务器会话或 URL 组上设置,否则不会记录请求。 HTTP_LOG_FIELDS_DATA 结构中的大多数字段都可以从HTTP_REQUEST结构中的相应字段初始化,但是,某些日志字段只有应用程序知道:例如 Win32Status 和 SubStatus。 此结构使应用程序能够更改记录的字段。 应用程序为相应成员传递 NULL 指针和零长度,以禁用该字段的日志记录。

应用程序必须使用上次发送调用提供 HTTP_LOG_FIELDS_DATA 结构。 如果响应是使用对 HttpSendHttpResponse 的单个调用发送的,则必须在此调用中提供日志数据。 如果响应是通过多个发送调用发送的,则必须在最后一次调用 HttpSendResponseEntityBody 时提供数据。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 http.h

另请参阅

HTTP 服务器 API 版本 2.0 结构

HTTP_RESPONSE_V1

HTTP_RESPONSE_V2

HttpSendHttpResponse

HttpSendResponseEntityBody