Загрузка по протоколу HTTP против FTP


Я создаю большой веб-сайт, на котором участникам будет разрешено загружать контент (изображения, видео) размером до 20 МБ (может быть, немного меньше 15 МБ, мы еще не определились с окончательным лимитом загрузки, но он будет где-то между 10-25 МБ).

Мой вопрос в том, должен ли я в этом случае использовать HTTP или FTP-загрузку. Имейте в виду, что 80-90 % загрузок будут иметь меньший размер, например, 1-3 МБ, но время от времени некоторые участники также захотят загружать большие файлы (10 МБ+).

Является HTTP загрузка достаточно надежна для таких больших файлов или мне следует использовать FTP? Есть ли заметная разница в скорости между HTTP и FTP при загрузке файлов?

Я спрашиваю, потому что я использую Zend Framework, у которого уже есть HTTP-адаптер для загрузки файлов, в случае, если я выберу FTP, мне придется написать для него свой собственный адаптер.

Спасибо!

Author: Bill Karwin, 2009-08-06

7 answers

HTTP определенно налагает меньшую нагрузку на ваших клиентов. Во многих местах есть прокси-серверы или брандмауэры, которые блокируют весь FTP-трафик (входящий или исходящий).

 15
Author: Eric Nicholson, 2009-08-06 13:12:29

Большим преимуществом HTTP является то, что он проходит через брандмауэры, и его очень легко зашифровать - просто используйте HTTPS на порту 443 вместо HTTP на порту 80. Оба проходят через прокси-серверы и брандмауэры. И в наши дни довольно легко загружать файлы размером 20 МБ по протоколу HTTP/HTTPS, используя СООБЩЕНИЕ.

Проблема с HTTP заключается в том, что он не перезапускается для загрузки. Если вы получите 80 % отправленного файла, а затем произойдет сбой, вам нужно будет перезапустить в начале. Вот почему поставщики все чаще использование загрузчиков и загрузчиков на основе flash, java или javascript. Эти системы могут видеть, какая часть файла была отправлена, отправлять MAC, чтобы убедиться, что он прибыл правильно, и повторно отправлять недостающие части.

MAC важнее, чем вы думаете. Контрольные суммы TCP составляют всего 32 бита, поэтому вероятность того, что ошибка не будет обнаружена, составляет 1 к 4 миллиардам. Это потенциально часто случается с современным Интернетом.

 12
Author: vy32, 2013-10-21 22:19:40

Достаточно ли надежна загрузка HTTP для таких больших файлов

Одним из основных преимуществ FTP является возможность возобновления прерванных загрузок. Большинство FTP-серверов и клиентов поддерживают эту функцию, хотя она не всегда активирована. В то время как с HTTP теоретически возможно использовать специальные заголовки, но обычный клиент (т.Е. Браузер) не будет поддерживать его.

Еще одним преимуществом будет массовая загрузка: очень просто в FTP, не так в HTTP.

Но почему бы просто не предложить оба варианта? HTTP для тех, кто стоит за прокси-серверами или не хочет/не может использовать FTP-клиент, и FTP для людей, которым приходится загружать много или большие загрузки по ненадежным соединениям.

 7
Author: Michael Borgwardt, 2009-08-06 14:01:46

Я не хочу быть саркастичным, но протокол передачи файлов должен быть более надежным при передаче файлов:)

 3
Author: Davide Ungari, 2009-08-06 13:22:28

Доступность/использование ресурсов - это скорее проблема, чем надежность или скорость. Каждая загрузка потребляет ресурсы - поток/память/и т.д. - на вашем веб-сервере в течение всего времени загрузки. Если трафик загрузки контента значителен для больших файлов, было бы лучше использовать FTP просто для того, чтобы освободить ваш HTTP-сервер, чтобы он лучше реагировал на запросы страниц.

 0
Author: ScottTx, 2009-08-06 13:25:02

Я определенно выбираю подход HTTP, как и остальные присутствующие здесь люди. Причина этого в том, что вы сказали о большинстве файлов размером от одного до трех мегабайт.

Проблема заключается в "отдыхе", поэтому:

Рассматривали ли вы возможность разрешить пользователям отправлять файлы большего размера по электронной почте сценарию deamon, который получает электронные письма и загружает их в учетную запись, связанную с отправителем? Или есть решение загрузчика flash, в facebook-подобном подход.

 0
Author: Dimitrios Mistriotis, 2009-08-06 19:07:37

FTP будет потреблять меньшую пропускную способность, чем HTTP, поскольку последнему потребуется кодировать (base64) двоичное содержимое в обычный текст, тем самым увеличивая общий размер передачи. (на 1/3).

Однако потребление пропускной способности может не обязательно быть главной проблемой по сравнению с другими факторами, такими как удобство использования и безопасность, в которых преобладает HTTP.

 -5
Author: hongliang, 2009-08-07 18:12:49