2.2.2.4 Log (Request and Response)
The purpose of the Log request is to submit statistics about the streamed content to the server. The request specifies parameters such as streaming quality and packet transmission statistics.
The Log request is defined as a HTTP POST request that satisfies the ABNF syntax for WMS-Log-Request [RFC4234], and satisfies all of the following conditions:
The POST request includes either a Pragma header with the log-line (section 2.2.1.4.10) token or a Content-Type header with the application/x-wms-LogStats content-type (as specified in 2.2.1.2.5).
The POST request does not include a pipeline-request (section 2.2.1.4.16) token on a Pragma header.
The POST request does not include a stream-switch-entry (section 2.2.1.4.27) token on a Pragma header.
The POST request does not include a xKeepAliveInPause (section 2.2.1.4.34) token on a Pragma header.
The POST request does not include a xStopStrm (section 2.2.1.4.38) token on a Pragma header.
The POST request message body is empty when a log-line token is specified on a Pragma header in the request, and the Content-Type header is omitted or specifies the content-type text/plain (section 2.2.1.2.7).
The message body of the POST request contains a logging message in XML format, as specified in [MS-WMLOG], when the Content-Type header with the application/x-wms-LogStats content-type is specified in the request.
The POST request uses either the HTTP 1.0 protocol, as specified in [RFC1945], or the HTTP 1.1 protocol, as specified in [RFC2616].
The syntax of the Log response is defined as WMS-Log-Response with the additional constraint that the response contains a zero-length message body.
-
WMS-Log-Request = WMS-Log-Req-Line WMS-LogReq-Headers CRLF WMS-LogReq-Body WMS-Log-Req-Line = "POST" SP Request-URI SP HTTP-Version CRLF WMS-LogReq-Headers = *( LogReq-Header-REQ / LogReq-Header-OPT / LogReq-Pragma / HTTP-Header-Types ) LogReq-Header-REQ = User-Agent ; section 2.2.1.8 LogReq-Header-OPT = Cookie ; section 2.2.1.3 Supported ; section 2.2.1.7 / X-Accept-Authentication ; section 2.2.1.9 / X-Proxy-Client-Verb ; section 2.2.1.11 LogReq-Pragma = "Pragma: " #LogReq-Pragma-Types CRLF LogReq-Pragma-Types = LogReq-Token-REQ / LogReq-Token-OPT LogReq-Token-REQ = client-id ; section 2.2.1.4.5 / no-cache ; section 2.2.1.4.12 LogReq-Token-OPT = log-line ; section 2.2.1.4.10 / proxy-client-agent ; section 2.2.1.4.21 / request-context ; section 2.2.1.4.23 / xClientGuid ; section 2.2.1.4.33 WMS-LogReq-Body = [ <XML-format-logging-info> ] ; [MS-WMLOG] WMS-Log-Response = Status-Line WMS-LogResp-Headers CRLF WMS-LogResp-Headers = *( LogResp-Header-REQ / LogResp-Header-OPT / LogResp-Pragma / HTTP-Header-Types ) LogResp-Header-REQ = Cache-Control ; section 2.2.1.1 / Server ; section 2.2.1.5 LogResp-Header-OPT = Supported ; section 2.2.1.7 LogResp-Pragma = "Pragma: " #LogResp-Pragma-Types CRLF LogResp-Pragma-Types = LogResp-Token-REQ / LogResp-Token-OPT LogResp-Token-REQ = no-cache ; section 2.2.1.4.12 LogResp-Token-OPT = client-id ; section 2.2.1.4.5 / timeout ; section 2.2.1.4.28
The following example shows a Log request.
-
POST /log2 HTTP/1.1 Accept: */* User-Agent: NSPlayer/12.0.7724.0 Host: SampleServer Pragma: xClientGUID={BFE16E37-55EC-4AE4-A5A9-0B0D307F4B72} X-Accept-Authentication: Negotiate, NTLM, Digest, Basic Pragma: client-id=2338761264 Content-Length: 2759 Content-Type: application/x-wms-LogStats;charset=UTF-8
The following example shows a Log response.
-
HTTP/1.1 204 No Content Server: Cougar/9.5.6001.18281 Content-Length: 0 Date: Mon, 08 Mar 2010 18:39:44 GMT Pragma: no-cache, client-id=2338761264, features="", timeout=60000 Cache-Control: no-cache Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache, com.microsoft.wm.startupprofile