I did some packet tracing, and there doesn't seem to be a conditional get at all
when using HttpRequestCacheLevel.Revalidate . Just a plain old get... And sure
enough the server is returning the entire content for every request. I don't see what else I could do to get HttpRequestCacheLevel.Revalidate to use a conditional request? As far as I can see, either the documentation is wrong (although the behavior described in the docs is exactly what I was hoping to achieve), the implementation is wrong.