In the Linux and win32 versions of JUCE URL the headers are sent in fixed size 1024 byte chunks. I have found a hack from back in the day in our code base that could be interesting for upstream. I am pretty sure it was for uploading large files via POST.
In sendHeader in juce_linux_Network.cpp and openHTTPConnection in juce_win32_network.cpp the fixed 1024 is increased to 8192 if the requestHeader.getSize() is bigger than 1MB. I do not know how these numbers were chosen.
This might be a case for some upload benchmarking?