4.12.1.3 Cache/Proxy Server and Origin Server Communication

The following steps demonstrate the cache/proxy server and origin server communication:

  1. The cache/proxy server requests content information from the origin server by sending a GetContentInfo request.

  2. The origin server responds with the Cache-Control header for the content.

  3. Optional: Additional handshaking can occur depending on the implementation of the origin server.

  4. The cache/proxy server determines whether to cache the content that the origin server is about to stream. If the content is to be cached, the cache/proxy server stores the Cache-Control header information and the content in the local cache.

  5. If the content is not fully cached in the cache/proxy server's local cache, or if the content will not be cached, the cache/proxy server sends a Describe request followed by a Play request to the origin server.

  6. The cache/proxy sends the $H and $D packets for the requested content to the client. Depending on whether the content is already fully cached, the source is either the cache/proxy server's local cache or the origin server.

  7. The cache/proxy server communicates any subscribed-to events (as indicated within the x-wms-event-subscription directive on the Cache-Control header) to the origin server.

The following shows a sample GetContentInfo request and the corresponding response.

Client to Server:

 POST /welcome2.asf?WMCache=0 HTTP/1.1
 User-Agent: WMCacheProxy/9.0.0.3177
 Via: HTTP/1.1 WMCacheProxy (WMCacheProxy/9.0.0.3177)
 Max-Forwards: 9
 Accept-Charset: UTF-8, *;q=0.1
 Pragma: xClientGUID={00000000-0000-0000-0000-000000000000}
 X-Accept-Authentication: Negotiate, NTLM, Digest
 Content-Type: application/x-wms-getcontentinfo
 Host: myhost:87
 Content-Length: 1
 Connection: Keep-Alive
  

Server to Client:

  
 HTTP/1.1 200 OK
 Server: Cougar/9.00.00.3178
 Date: Wed, 31 Jul 2002 00:13:03 GMT
 Pragma: no-cache, xResetStrm=1, timeout=60000
 Cache-Control: no-cache, x-wms-content-size=2139795, max-age=86399, 
                user-public, must-revalidate, proxy-public, 
                proxy-revalidate
 Last-Modified: Fri, 30 Jun 2000 09:37:24 GMT
 Etag: "2139795"
 Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, 
            com.microsoft.wm.predstrm, com.microsoft.wm.fastcache
 Content-Length: 0