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 结构是 httpSendResponseEntityBody 和 HttpSendHttpResponse 函数中 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 |