Is there a maximum size for an HTTP POST? And if there is a max size, is it determined by the protocol or is it at the discretion of the server?
The specifications of the POST method do not impose any limit on the size of data, but both the web servers and the browsers will set their own limits.
Internet Explorer: 2 GB
Firefox: 2 GB
Chrome: 4 GB
Opera: 4 GB
I don't think that there is a specific limit in the protocol, BUT there are cases where things get squirrelly if you're transferring huge files. It depends on the size of the file as to what may work a little better for your specific case. There's not any support for checking that the file wasn't corrupted in transfer, for example, unlike using something like a torrent for the transfer.