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…

WinHTTP Questions: About Callbacks

Hello All, I am continuing the “WinHTTP Questions” series with some questions on WinHTTP callbacks. Is it correct that WinHTTP Callbacks will occur *only* during an in-progress WinHTTP operation? Is it possible that an external event (such as the remote server resetting the underlying tcp connection) result in a callback even when there’s no outstanding…


WinHTTP Questions – async close on a sync request

Hello, my name is Deepak and I’m a SDET in serviceability. We handle a bunch of questions from developers using WinHTTP, and thought we might share then in a new posting series, “WinHTTP Questions”. Can I cancel a synchronous WinHttpSendRequest call by closing the request handle from a different thread? Or, are there any requirements…


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

WinHttp Configuration for Windows Vista

In my previous posts, I described the new WinHttp proxy, tracing and client certificate configuration story for Windows Vista Beta2. The syntax of the netsh commands used to configure WinHttp proxy and tracing settings have changed for Vista RTM and this post describes the changes in command syntax since the beta. WinHttp Netsh Context From…


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…


Large Request Payload Support in WinHttp for Windows Vista

If you have used WinHttp to upload data to a server, you probably noticed that the total payload length parameter (dwTotalLength in WinHttpSendRequest) is of type DWORD, which is a 32 bit unsigned number. This limits the WinHttp apps to uploading 4GB of data, which could become a limitation in certain scenarios.A natural way to…


Extensions to the Navigator Proxy Auto-Config File Format specification to support IPv6 v0.9

The following functions are extensions to the Navigator Proxy Auto-Config File Format specification to enable WPAD scripts to handle IPv6 capable networks: Predefined Functions and Environment for the JavaScript Function FindProxyforURLEx:   Hostname based conditions: isResolvableEx() isInNetEx() Related utility functions: dnsResolveEx() myIpAddressEx() sortIpAddressList() getClientVersion()   isResolvableEx(host)   This API determines if a given host string can…


Wanted: Developer feedback for our "Next Generation" client HTTP stack

As we begin the planning phase for our “Next Generation” client HTTP stack, we would love to hear from developers using our existing APIs (WinINet and WinHTTP). Please help us understand what your experience has been so far and what you would like to see in any future releases by filling out this survey. Thanks  -Jonathan Silvera