Would anyone know why a Windows Update server (ie: download.windowsupdate.com) would give what looks like a bogus reply on certain networks? Taking the example of a patch for MSE I get the following header using a 4G mobile network (Vodafone). I've chopped the response down a bit for brevity.
curl -I "http://download.windowsupdate.com/d/msdownload/update/software/defu/2021/05/am_delta_6a3649beb57cee48081bd31631c8774de6505d2f.exe"
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 8995
Content-Type: application/octet-stream
Date: Fri, 14 May 2021 13:59:10 GMT
Server: ECAcc (lha/8DA7)
Content-Length: 0
Connection: keep-alive
Note the invalid Content-Length, especially in tandem with keep-alive. This does not happen on our main network, which is supplied by UPC/Virgin Media. The Content-Length is a valid number on that network.
There is content (a several megabyte .exe file) and curl can deal with it just fine - I guess it checks to see if a read() comes back with more bytes and ignored Content-Length if it does. Good for curl.
However older versions of BITS do not seem to be able to deal with this nicely. Using a Windows 7 Pro in a VM, BITS starts running in a loop - it write to C:\ProgramData\Microsoft\Network\Downloader\qmgr0.dat over and over until I do a "net stop bits". This uses 100% disk and is effectively a DOS against Windows 7.
I know that Windows 7 is out of support but I saw this issue originally with Windows Server 2016. I will admit right now that this may already be a known bug and may already have been patched but I'm not sure how to find out (other than testing on an appropriate machine, when I get access. This is a Covid 19 related difficulty!)
As far as I know, BITS was rewritten for Windows 10 so it may not have the same issue. It's an interesting one though!