Если у меня есть http, а также опции ftp (например, страница загрузки Hadoop ), я должен предпочесть ftp?
Я пробовал ftp раньше и не заметил существенной разницы. Это должно работать лучше?
Если у меня есть http, а также опции ftp (например, страница загрузки Hadoop ), я должен предпочесть ftp?
Я пробовал ftp раньше и не заметил существенной разницы. Это должно работать лучше?
Ответы:
Украдено у 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
В общем, общие ответы о производительности сети протокола очень сложны, потому что производительность очень сильно зависит от конкретной настройки сети, часто больше, чем от используемого протокола.
Тем не менее, я не знаю ни одной причины, по которой пропускная способность http и ftp должна быть разной. Оба в основном просто отправляют данные через поток TCP, поэтому фактический процесс передачи данных одинаков. Так что нет, в общем скорость загрузки должна быть одинаковой для ftp и http.
http обычно предпочтительнее по другим причинам: он лучше работает с брандмауэрами (может быть прокси), позволяет перезапускать прерванные загрузки и может предоставлять тип носителя вместе с загрузкой (MIME), его проще шифровать (TLS / SSL) , и т.д...
Для меня одной из самых больших ошибок FTP является невозможность повторного использования сокетов. FTP имеет 3 режима передачи: Потоковый, Блок и Сжатый, однако поддержка последних двух не является распространенной. В стандартном и наиболее широко используемом режиме (Поток) данные в основном передаются в виде необработанного потока байтов, и, поскольку у них нет метаданных о завершении работы с этим файлом, он должен ЗАКРЫТЬ соединение по завершении. Это означает, что если вы передаете 100 000 файлов по FTP, вы открываете и закрываете 100 000 TCP-соединений. Если это не было достаточно плохо, когда одно из этих соединений закрыто, оно должно быть переведено в состояние TIME_WAIT на определенный период времени. Задержка по умолчанию для этого порта для повторного использования в Windows составляет 240 секунд (4 минуты). Чтобы завершить все это, у вас есть только до 5000 портов для использования по умолчанию. Это делает FTP кошмаром для передачи большого количества небольших файлов. Изменяя реестр, вы можете увеличить время восстановления до 30 секунд и увеличить максимальное количество пользовательских портов до 65000, что очень поможет, но ни в коем случае не идеально.
HTTP, с другой стороны, может повторно использовать один и тот же сокет для передачи нескольких файлов. Так что если у вас много файлов (особенно файлов меньшего размера), то HTTP, без сомнения, будет лучшим выбором.
Если вы делаете только несколько больших файлов, то не имеет значения, какой протокол вы используете. Я думаю, что FTP приходит на ум, когда люди думают о передаче файлов, но это, конечно, не означает, что это лучше.