Oh, I see. Not multiples of 1K, but 2^18 and 2^19, respectively. (Why those values? Oh, who knows.)
:: further detour to pore over logs ::
:: pause for D'oh! moment as I realize that logheaders isn't recording image requests up front, it's getting triggered by the 403 page (which the robot never reads, but the server dutifully sends out anyway, regardless of original request's filetype) ::
:: continued scrutiny looking for something that's neither facebook nor a blocked robot ::
Range: bytes=0- Host: www.example.com Connection: close User-Agent: AndroidDownloadManager
What on earth does "0-" mean? Wouldn't it make the server go haywire trying to guess how big a chunk it can send out?
:: final detour to apache docs to check wording ::
If a HTTP header is used in a condition this header is added to the Vary header of the response in case the condition evaluates to to true for the request. It is not added if the condition evaluates to false for the request. Adding the HTTP header to the Vary header of the response is needed for proper caching.
Someone else will explain that, in case it turns out to be important.
I don't know whether that actually works; I only know it won't crash the server. The intention is to intercept any request with an unreasonably small Range header.
Depending on who's making the request, and why, they may or may not accept an html response. It may be safer to make a tiny little special-info-page.pdf of just a few K, giving the needed information and a link back to your site.