title: System.Net.Http.HttpClient caching behavior
body: <p>I'm using HttpClient 0.6.0 from NuGet.</p>
  
  <p>I have the following C# code:</p>
  
  <pre><code>var client = new HttpClient(new WebRequestHandler() {
      CachePolicy =
          new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable)
  });
  client.GetAsync("http://myservice/asdf");
  </code></pre>
  
  <p>The service (this time CouchDB) returns an ETag value and status code 200 OK. There is returned a Cache-Control header with value must-revalidate</p>
  
  <p>Update, here are the response headers from couchdb (taken from the visual studio debugger):</p>
  
  <pre><code>Server: CouchDB/1.1.1 (Erlang OTP/R14B04)
  Etag: "1-27964df653cea4316d0acbab10fd9c04"
  Date: Fri, 09 Dec 2011 11:56:07 GMT
  Cache-Control: must-revalidate
  </code></pre>
  
  <p>Next time I do the exact same request, HttpClient does a conditional request and gets back 304 Not Modified. Which is right.</p>
  
  <p>However, if I am using low-level HttpWebRequest class with the same CachePolicy, the request isn't even made the second time. This is the way I would want HttpClient also behave.</p>
  
  <p>Is it the must-revalidate header value or why is HttpClient behaving differently? I would like to do only one request and then have the rest from cache without the conditional request..</p>
  
  <p>(Also, as a side-note, when debugging, the Response status code is shown as 200 OK, even though the service returns 304 Not Modified)</p>