Why didn’t my cached content revalidate to the web server? (IE8 edition)

For the super eagle eyed developer or Web Server admin, you might have noticed that cache entry validation happens slightly less frequently in IE8. I’m talking about the check to the Web Server (via If-Modified-Since) to see if the cached version of content needs updating or is still current. The short version of why this…

HTTP Connection Management

HTTP is a request/response protocol. You request some resource like the HTML of a webpage and the response comes back with the HTML attached.  As each request is sent on a connection, the complete response must be read from the connection before the next response can be read. (There is an optimization where you make…

Ask Perf explains how winInet is used

Ask Perf, the blog of the Enterprise Platforms Windows Server Performance Team, is spending some time explaining a bit of how WinInet/WinHTTP and their surrounding components work with each other. Go check it out!   — Ari


WinInet ETW Logs: Part 1 – Reading Logs

Hello, my name is Marcus Frazier. I am a developer on the WinInet team and I am here to talk about reading and understanding WinInet ETW logs. If you need to know how to capture these logs, check out Jonathan’s post. Keep in mind that WinInet ETW tracing is only available on Vista. Events ETW…


A Tale of 20 Cookies

As more applications move to leveraging the web, either through desktop-integration or complete migration to a web model, maintaining user state on the web becomes critical. For many web sites and applications this means the use of in-memory and persistent cookies. Netscape originally defined HTTP cookies in a preliminary document and later the IETF standardized…


Content-Encoding != Content-Type

RFC 2616 for HTTP 1.1 specifies how web servers must indicate encoding transformations using the Content-Encoding header. Although on the surface, Content-Encoding (e.g., gzip, deflate, compress) and Content-Type (e.g., x-application/x-gzip) sound similar, they are, in fact, two distinct pieces of information. Whereas servers use Content-Type to specify the data type of the entity body, which…


A WinINet Chunked-Encoding Story

A couple of months back, Nick Bradbury of Homesite and FeedDemon fame posted a blog entitled, “Microsoft, Please fix this WinINet bug!” where he mentioned some users of FeedDemon 2.0 were experiencing a significant CPU spike when downloading RSS feeds. Nick discovered that the spike occurred when downloading feeds from particular sites via WinINet InternetReadFile….


A bit about WinInet’s Index.dat – Q&A

In my previous post I tried to explain a bit about what the index.dat files are and what has changed in IE7/Windows Vista timeframe. The post got a couple questions that I’ll attempt to answer here. 1) Mike: The real problem behind index.dat is that whether or not the indexes inside are still relevant or…


A bit about WinInet’s Index.dat

Since a recent digg article and its underlying Wikipedia entry seems a little confused about index.dat, I’d like to give some more detail about what it is and what we have changed with it in IE7/Vista’s version of WinInet. As Jeffdav explained a while back, the index.dat file is a store for web related things;…