I need to send quite large HTTP requests from a mobile device. In what situation is the request lost (So that the data sent will have to be resent)?
What happen for example if there is no radio-connection for a few seconds? Does it depend on some decision in the network I can't control?
There is not timeouts on the server. I control the client and we can assume it is stable. The calls goes into some Curl libraries (POSIX C++, embedded Linux), and it is limited how much I can change it.
As "some" said, you should split your upload into parts, number them and re-assemble them on the other end. I once wrote a webservice to do that, so the client would have confirmation that a particular part has been received with the right checksum (for example a SHA-1 hash).
If the confirmation doesn't come because of a time out or the hash doesn't match, the client should re-send the part. I would advice to make each chunk small enough like 1-10 kb, depending on expected network speed (slow network smaller chunks).