My wiki server records HEAD requests when I download files. That gives the browser the information to fill in the "nnn bytes of nnn bytes" on the download progress.
That sounds a bit odd. After all, the HTTP header contains the length of the response, and since the browser knows how many bytes it has read so far, there should be no need to communicate with the server.
I could imagine a browser sending HEAD requests to check if a particular resource has changed since the browser last requested (and cached) it; particularly for large files. Although that's really what
conditional GET is for.