Either protocol should work most all the time, HTTP might be a bit more likely to be working (i.e. if the only way to connect to the internet on that system is through an HTTP proxy).
As for security, neither protocol ensures that the server is actually the right server... so really, there's not really any. HTTPS would solve that problem, but might not be possible.
If security (not privacy) is a concern, I'd recommend signing the package and verifying the signature with a public key embedded inside your application after downloading, that way you won't need to verify that the protocol is secure.