HTTP вызывает меньше проблем с сетью -- всего один открытый сокет нужен и не нужны открытые порты у клиента. И самое главное, FTP заставляет работать с файлом напрямую как есть. То-есть нужен файл на диске. А HTTP может имитировать, что мол файл есть (в запросе), а на самом деле он сформируется динамически в результате выборки из БД. И размер выборки можно через параметры запроса контролировать. А в FTP только файл кусочно читать.