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 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