Подтвердить что ты не робот

Какой доступ к файлам лучше всего: Webdav или FTP?

Мне нужно разработать приложение Java, которое должно читать некоторые файлы в сети, редактировать их и возвращать.

Проблема в том, что я всегда делал (по сети) файловые операции по протоколу FTP. Но я недавно слышал о Webdav, который основан на HTTP.

Кто-нибудь заметил разницу (с точки зрения скорости) между ними? Какой из них лучше? Почему они "изобретали" Webdav, если FTP для этого хорош?

4b9b3361

Ответ 1

WebDAV имеет следующие преимущества перед FTP:

  • Работая через одно TCP-соединение, проще настроить его на обход брандмауэров, NAT и прокси. В FTP канал данных может вызвать проблемы с надлежащей настройкой NAT.

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

  • Сжатие GZIP является стандартом для HTTP, но не для FTP (да, MODE Z предлагается по FTP, но он не определен ни в одном стандарте).

  • HTTP имеет широкий выбор методов аутентификации, которые не определены в FTP. Например. Проверка подлинности NTLM и Kerberos является обычным явлением в HTTP и на FTP, поэтому трудно получить надлежащую поддержку для них, если вы не пишете как клиентские, так и серверные стороны FTP.

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

Есть еще одна вещь, которую следует учитывать (в зависимости от того, управляете ли вы сервером) - SFTP (SSH File Transfer Protocol, никак не связанный с FTP). SFTP более функциональный, чем WebDAV, а SFTP - протокол для доступа к удаленным файловым системам, в то время как WebDAV был разработан с учетом абстракции (WebDAV был для "документов", а SFTP - для файлов и каталогов). SFTP имеет все преимущества, упомянутые выше для WebDAV, и более популярен среди администраторов и разработчиков.

Ответ 2

Отвечай за вопрос - Why did they "invent" Webdav

WebDAV означает Web Distributed Authoring and Versioning.

Интернет просто не предназначен для потребления ресурсов через URL-адреса (Единый локатор ресурсов)

Но так оно и стало.

Поскольку HTTP имеет сильную семантику для извлечения ресурсов (GET) и (HEAD). (POST) предоставил покрытие для количества семантических операций, в то время как (DELETE) был окутан недоверием. HTTP не хватало некоторых других качеств, таких как многоресурсные операции.

В двух словах, это был протокол чтения, а не протокол записи.

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

WebDAV должен был предоставить отсутствующую историю Интернета: поддержка создания ресурса с помощью одного и того же механизма HTTP. Он расширил семантику, внедрил новую версию HTTP VERBS.

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

Итак, вы видите, это привело к некоторым из тех же механизмов, которые вы ожидаете от операций с файлами на рабочем столе с интернет-ресурсами.

Ниже приведены некоторые из аналогий:

MKCOL     ----- make collection ----- similar to make folder
PROPGET   ---- get properties (meta?) --- same as get info or extended attributes on mac
PROPPATCH --- modify properties
COPY      ---- cp
MOVE      ---- mv

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

Для вашего вопроса

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

Что быстрее

Это похоже на ответ, который быстрее HTTP или FTP?

С уважением, если бы это была такая проблема, мы бы не загружали/загружали файлы через HTTP;)

Ответ 3

Так как DAV работает над HTTP, вы получаете все преимущества HTTP, которые FTP не может предоставить.

Например:

надежная аутентификация, шифрование, поддержка прокси и кэширование.

Верно, что вы можете получить часть этого через SSH, но инфраструктура HTTP гораздо более широко используется, чем SSH. Кроме того, SSH не имеет широкого набора инструментов, библиотек разработки и приложений, которые выполняет HTTP.

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

Ссылка

Ответ 4

Webdav имеет преимущества перед FTP в отношении простой передачи брандмауэров (без отдельных сокетов управления/данных). Скорость должна быть примерно такой же, как обе протоколы передают файл по необработанному сокету tcp.

Ответ 5

Зависит от того, что вы хотите сделать. Например, накладные расходы на FTP для получения списка файлов составляют 7 байт (LIST -a), а 370 байт - с помощью Webdav (PROPFIND + 207 Multi Status).

Для отправки некоторого файла накладные расходы ниже по FTP, чем на Webdav и т.д.

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

Пожалуйста, смотрите: http://www.philippheckel.com/files/syncany-heckel-thesis.pdf

Ответ 6

время изменения файла:

похоже, есть разница в том, как ftp и webdav имеют дело с временем изменения файла.

Кажется, в ftp есть "команда", чтобы сохранить это время (для этого требуются несколько клиентов и серверов ftp), тогда как webdav, если я правильно помню, могу получить дату изменения файла, но не могу установить его при загрузке.

owncloud client и некоторые propriatary клиенты webdav, похоже, имеют обходное решение, но это работает только в их программном обеспечении.

в зависимости от использования, то есть сильный аргумент в пользу ftp. Я не хочу, чтобы у моих файлов была дата их модификации == дата загрузки. После более поздней загрузки я не смог бы сообщить по дате, какая версия файла у меня есть.