Для передачи файлов ftp работает лучше, чем http?

Ответы:

7

Украдено у eHow, ссылка внизу

Преимущества и недостатки HTTP

HTTP-загрузки предоставляют невероятно простой способ загрузки файлов на сервер с минимальными знаниями о передаче файлов. Загрузка файла также невероятно проста. Однако недостатки заключаются в недостаточной мощности HTTP при загрузке файлов. Кроме того, программист должен обладать знаниями, необходимыми для создания формы в HTML, чтобы загрузить соответствующий файл. Это особенно верно, если файл предназначен для социальной сети, аналогичной Myspace или Facebook, которую они создают.

Преимущества и недостатки FTP

Использование FTP-сервера дает свои преимущества. С одной стороны, пользователь может использовать программу для массовой загрузки на сервер, не беспокоясь о том, что нужно повторно выбирать файлы и повторно загружать их, используя одну форму. Загрузка также может быть сделана в массовом порядке. К сожалению, FTP-сервер все еще требует использования FTP-клиента, и его использование будет особенно обременительным для тех, кто просто хочет загрузить изображение или два.

Различия

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

Подробнее: HTTP Vs. FTP передача файлов | eHow.com http://www.ehow.com/about_5435784_http-vs-ftp-file-transfer.html#ixzz0wlUSkVIY

Nifle
источник
4
Это в основном о преимуществах / недостатках при загрузке . Вопрос не в этом.
слеске
@sleske: Согласен. Я понизил ответ Nifle.
незабываемыйПоддержкаMonica
8

В общем, общие ответы о производительности сети протокола очень сложны, потому что производительность очень сильно зависит от конкретной настройки сети, часто больше, чем от используемого протокола.

Тем не менее, я не знаю ни одной причины, по которой пропускная способность http и ftp должна быть разной. Оба в основном просто отправляют данные через поток TCP, поэтому фактический процесс передачи данных одинаков. Так что нет, в общем скорость загрузки должна быть одинаковой для ftp и http.

http обычно предпочтительнее по другим причинам: он лучше работает с брандмауэрами (может быть прокси), позволяет перезапускать прерванные загрузки и может предоставлять тип носителя вместе с загрузкой (MIME), его проще шифровать (TLS / SSL) , и т.д...

sleske
источник
1
http не разрешает прерванные загрузки, вы уверены, что не имеете в виду ftp? ftp также может быть прокси и зашифрован. Загрузка по протоколу http предпочтительна, только предпочтительна, поскольку не требует, чтобы кто-либо устанавливал клиент ftp (или сервер для провайдера контента)
Nifle
1
Да, я имею в виду http. http позволяет возобновить загрузку (используя заголовок «Range:»). Однако я исправлен в отношении FTP: он также позволяет возобновлять загрузку.
слеске
Что касается прокси / шифрования: Да, FTP может сделать это, но он, по-видимому, более сложный и, что более важно, менее распространенный, в то время как поддержка прокси-серверов HTTP и TLS практически универсальна.
слеске
И, между прочим, загрузка ftp обычно не требует установки клиента ftp, так как большинство браузеров могут загружать по ftp (используя ftp: // URL). Тем не менее, большинство браузеров не могут загружать по FTP.
слеске
3

Для меня одной из самых больших ошибок FTP является невозможность повторного использования сокетов. FTP имеет 3 режима передачи: Потоковый, Блок и Сжатый, однако поддержка последних двух не является распространенной. В стандартном и наиболее широко используемом режиме (Поток) данные в основном передаются в виде необработанного потока байтов, и, поскольку у них нет метаданных о завершении работы с этим файлом, он должен ЗАКРЫТЬ соединение по завершении. Это означает, что если вы передаете 100 000 файлов по FTP, вы открываете и закрываете 100 000 TCP-соединений. Если это не было достаточно плохо, когда одно из этих соединений закрыто, оно должно быть переведено в состояние TIME_WAIT на определенный период времени. Задержка по умолчанию для этого порта для повторного использования в Windows составляет 240 секунд (4 минуты). Чтобы завершить все это, у вас есть только до 5000 портов для использования по умолчанию. Это делает FTP кошмаром для передачи большого количества небольших файлов. Изменяя реестр, вы можете увеличить время восстановления до 30 секунд и увеличить максимальное количество пользовательских портов до 65000, что очень поможет, но ни в коем случае не идеально.

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

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

Деспертар
источник