after some investigation, turns out that it *does* in fact respond with a bunch of http headers, but no body, and it does keep the tcp connection alive indefinitely.. curl -v log:
$ curl '
http://127.0.0.1/123.txt' -H "Range: bytes=3-" -vv
* STATE: INIT => CONNECT handle 0x80008eff8; line 1789 (connection #-5000)
* Added connection 0. The cache now contains 1 members
* family0 == v4, family1 == v6
* Trying 127.0.0.1:80...
* STATE: CONNECT => CONNECTING handle 0x80008eff8; line 1850 (connection #0)
* Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)
* STATE: CONNECTING => PROTOCONNECT handle 0x80008eff8; line 1980 (connection #0)
* STATE: PROTOCONNECT => DO handle 0x80008eff8; line 2003 (connection #0)
> GET /123.txt HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.80.0
> Accept: */*
> Range: bytes=3-
>
* STATE: DO => DID handle 0x80008eff8; line 2099 (connection #0)
* STATE: DID => PERFORMING handle 0x80008eff8; line 2218 (connection #0)
* Mark bundle as not supporting multiuse
* HTTP 1.1 or later with persistent connection
< HTTP/1.1 400 Bad Request
< Content-Type: text/plain
< Accept-Ranges: bytes
< Server: HFS 2.3m
< Set-Cookie: HFS_SID_=0.732762209838256; path=/; HttpOnly
< ETag: 491C3211A3BA8673626DDF909E1F59BE
< Last-Modified: Sat, 22 Jan 2022 01:00:01 GMT
< Content-Disposition: filename="123.txt";
* no chunk, no close, no size. Assume close to signal end
<
(here curl just hangs indefinitely)
wget:
$ wget '
http://127.0.0.1/123.txt' -v -c
--2022-01-22 02:25:12--
http://127.0.0.1/123.txtConnecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3 [text/plain]
Saving to: %u2018123.txt%u2019
123.txt 100%[==================================================================================================================================================================>] 3 --.-KB/s in 0s
2022-01-22 02:25:12 (31.1 KB/s) - %u2018123.txt%u2019 saved [3/3]
hans@DESKTOP-2LHJILI ~
$ wget '
http://127.0.0.1/123.txt' -v -c
--2022-01-22 02:25:15--
http://127.0.0.1/123.txtConnecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 400 Bad Request
2022-01-22 02:25:15 ERROR 400: Bad Request.
- and that 400 breaks wget's -c , which is bad when combined with -r , eg `wget -r -c
http://127.0.0.1/ - will only work the first time, the 2nd invocation will be broken with a http bad request error. (because hfs doesn't respond with http 416)