Как файлы передаются по http

Обновлено: 30.06.2024

Существует множество инструментов командной строки для передачи данных в системы CARC и из них, каждый из которых предназначен для использования по назначению и обладает определенным набором функций. В следующей таблице перечислены доступные инструменты командной строки в зависимости от сценария переноса:

СценарийВарианты
Локальный компьютер ⇄ Системы CARCsftp, scp, rsync, globus-cli
системы CARC ⇄ интернетФайловые серверы: sftp, lftp
Общие ресурсы Globus: globus-cli
Серверы Aspera: aspera-cli
Загрузки: wget, curl, aria2c
Облачное хранилище: rclone
Код: git

Ниже вы найдете описания, сравнения и примеры использования каждого инструмента.

Если у вас есть вопросы о передаче данных с помощью этих инструментов, отправьте запрос в службу поддержки, и мы поможем вам.

Общие рекомендации

  • Передавайте только те данные, которые необходимы
  • Сжимайте большие файлы с помощью xz, чтобы уменьшить объем передаваемых данных (в зависимости от скорости сети).
  • Архивировать файлы с помощью tar при передаче большого количества файлов
  • Для небольших и средних операций передачи на локальный компьютер и с него используйте sftp или rsync.
  • Для передачи больших объемов данных на локальный компьютер или другую конечную точку или с нее используйте Globus.
  • Для резервного копирования и синхронизации каталогов используйте rsync
  • Для передачи на/с FTP-сервера используйте lftp
  • Для более быстрой загрузки из Интернета используйте aria2c.
  • Для передачи в/из облачного хранилища используйте rclone
  • Для длительной передачи запустите команду в tmux

Архивация и сжатие перед передачей

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

Локальный компьютер ⇄ Системы CARC

Для копирования файлов между локальным компьютером и системами CARC доступны следующие параметры: sftp, scp и rsync. Они доступны в macOS и Linux через собственные терминальные приложения, а в Windows — через такие приложения, как Windows Terminal или PuTTY. Globus также предоставляет интерфейс командной строки ( globus-cli ), который вы можете установить; для получения дополнительной информации см. руководство по передаче файлов с помощью Globus.

sftp обеспечивает интерактивный режим, который требует аутентификации только один раз и поддерживает открытое соединение для передачи файлов по мере необходимости до выхода из сеанса. Напротив, scp и rsync можно использовать только в неинтерактивном режиме, который требует аутентификации для каждой передачи. Кроме того, rsync имеет более продвинутые функции, чем scp .

Инструкции и команды для этих инструментов подробно описаны в раскрывающихся разделах ниже:

Использование sftp

sftp — это клиентская программа для передачи файлов с использованием протокола безопасной передачи файлов (SFTP). Его можно использовать в интерактивном или неинтерактивном режимах для копирования файлов между двумя компьютерами по сети, одним локальным и одним удаленным. В интерактивном режиме требуется первоначальный вход в систему и аутентификация, но ваш сеанс будет оставаться открытым до тех пор, пока вы не выйдете или не отключитесь иным образом. Вы останетесь подключенными к системам CARC с возможностью загружать (помещать) и скачивать (получать) файлы без дополнительной аутентификации. Это преимущество использования sftp по сравнению с другими инструментами передачи из командной строки.

Чтобы использовать sftp в интерактивном режиме с локального компьютера, сначала войдите в узел CARC, например hpc-transfer1, и выполните аутентификацию через Duo:

Если вы впервые входите в систему, вас спросят: "Вы уверены, что хотите продолжить подключение (да/нет)?". Введите «да». После подключения вы увидите следующее:

Введите команду справки, чтобы просмотреть все доступные команды. Используйте такие команды, как pwd , ls и cd , а также их локальные эквиваленты lpwd , lls и lcd , чтобы перейти к исходному и целевому каталогам для передачи файлов.

Локальная навигация

Удаленная навигация

Загрузка файла/каталога с локального компьютера в системы CARC

Чтобы загрузить файл, используйте команду put:

Чтобы рекурсивно загрузить каталог, добавьте параметр -R и укажите путь к локальному каталогу (например, введите -R dir ).

Загрузка файла/каталога из систем CARC на локальный компьютер

Чтобы загрузить файл, используйте команду get:

Чтобы загрузить каталог рекурсивно, добавьте параметр -R и укажите путь к удаленному каталогу (например, get -R dir ).

Использование scp

scp — это клиентская программа для передачи файлов с использованием протокола безопасного копирования (SCP). Он копирует файлы между двумя компьютерами по сети, одним локальным и одним удаленным.

Примечание. В отличие от sftp, вход в систему и аутентификация запрашиваются при каждом использовании команды scp.

Общая команда scp:

где источник и место назначения — это пути к файлам или каталогам, и один из них находится на удаленном узле, где используется синтаксис host:path . В системах CARC хост является узлом входа или передачи. Когда команда будет отправлена, вам сначала нужно будет ввести свой пароль и пройти аутентификацию Duo, а затем начнется перенос.

Чтобы загрузить локальный файл в каталог вашего проекта, например, место назначения находится на удаленном хосте. На локальном компьютере введите следующую команду:

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

Чтобы загрузить файл из каталога вашего проекта, например, источник находится на удаленном хосте. На локальном компьютере введите следующую команду:

Чтобы загрузить каталог рекурсивно, добавьте параметр -r и укажите каталог на хосте в качестве источника.

параметры scp

Для больших передач рассмотрите возможность добавления параметра -C, который будет сжимать исходные файлы перед передачей и автоматически распаковывать их после копирования в место назначения.

Введите man scp для получения дополнительной информации и просмотра всех доступных параметров.

Использование rsync

Rsync — это быстрый и универсальный инструмент для синхронизации файлов и каталогов. Обычно он используется для копирования, синхронизации и резервного копирования каталогов между двумя компьютерами по сети, одним локальным и одним удаленным, но его также можно использовать для локального копирования и синхронизации. Он использует алгоритм дельта-передачи, чтобы свести к минимуму объем данных, которые необходимо передать; будут переданы только новые или измененные файлы в каталоге. По умолчанию Rsync будет использовать SSH для безопасной передачи файлов по сети.

Примечание. В отличие от sftp, вход и аутентификация запрашиваются при каждом использовании команды rsync.

Общая команда rsync:

где источник и место назначения — это пути к файлам или каталогам, и один из них находится на удаленном узле, где используется синтаксис host:path . В системах CARC хост является узлом входа или передачи. Когда команда будет отправлена, вам сначала нужно будет ввести свой пароль и пройти аутентификацию Duo, а затем начнется перенос.

Чтобы загрузить локальный каталог в каталог вашего проекта, например, место назначения находится на удаленном хосте. На локальном компьютере введите следующую команду:

Чтобы загрузить каталог из каталога вашего проекта, например, источник находится на удаленном хосте. На локальном компьютере введите следующую команду:

Опция -a включает режим архивирования, который рекурсивно передает каталоги и сохраняет права доступа и время модификации файлов. Параметр -v включает подробный режим, который печатает журнал передачи. Опция -h печатает размер передаваемых данных и соответствующую информацию в удобном для чтения формате.

После внесения изменений в исходный каталог просто введите ту же команду rsync еще раз, чтобы синхронизировать целевой каталог. Если файлы, удаленные из источника, также должны быть удалены из места назначения, добавьте параметр --del.

Обратите внимание, что команда rsync чувствительна к завершающему / в исходном каталоге (например, data vs data/). Если он не включен, он скопирует каталог, а также его содержимое в целевой каталог в качестве нового подкаталога. Если он включен, он не будет копировать сам каталог, а только его содержимое в целевой каталог.

параметры rsync

Rsync предоставляет множество других параметров, помимо тех, которые использовались в приведенных выше примерах. Вот еще несколько полезных опций:

< td>Удалить файлы из места назначения, если они были удалены из источника< tr>
ОпцияОписание
--del
-z или --compress Сжать файлы во время передачи
--append-verify Сохранение, проверка и обновление частично переданных файлов
--progress Отображение хода передачи файлов
--stats Печать статистики передачи

Для передачи больших файлов, которая может занять много времени, рассмотрите возможность добавления параметра -z для сжатия файлов, а также параметра --append-verify, который сохранит частично переданные файлы. Если передача прервана, повторный ввод той же команды перезапустит передачу с того места, где она была остановлена, и добавит данные в неполный файл.

Введите man rsync или rsync --help, чтобы получить дополнительную информацию и просмотреть все доступные параметры.

Примечание. Если у вас возникли проблемы с разрывом связи во время передачи rsync, попробуйте добавить параметр --timeout=60, чтобы поддерживать соединение в течение 60 секунд в случае простоя передачи. Иногда задержки в сети могут вызывать разрывы соединения.

Системы CARC ⇄ Интернет

→ Файловые серверы: sftp и lftp

Использование sftp и lftp

Для файловых серверов, использующих протокол SFTP, для передачи файлов можно использовать программу sftp. Примеры использования sftp можно найти в предыдущем разделе, посвященном sftp, с той лишь разницей, что это удаленный сервер, с которым вы взаимодействуете.

Для файловых серверов, использующих FTP, SFTP или другие протоколы, подобные FTP, для передачи файлов можно использовать модуль lftp: загрузка модуля lftp . Программа lftp имеет аналогичный интерфейс и команды для sftp, но имеет дополнительные функции, в том числе множественное подключение и параллельную загрузку. Для получения дополнительной информации и доступных параметров введите man lftp или ознакомьтесь с официальной документацией по lftp.

Программы wget , curl и aria2c также можно использовать для неинтерактивной загрузки файлов с FTP- или SFTP-серверов. Программы sftp , lftp и curl также можно использовать для неинтерактивной загрузки файлов на серверы FTP или SFTP.

→ Загрузки: wget, curl и aria2c

Использование wget, curl и aria2c

В целом проще всего использовать wget, curl предлагает более продвинутые функции, полезные при написании сценариев, а aria2c предлагает мультисоединение и параллельную загрузку для повышения скорости передачи больших объемов данных.

Использование wget

Для простой загрузки файлов из Интернета проще всего использовать программу wget. Просто укажите URL-адрес файла:

Введите man wget или wget --help для получения дополнительной информации и просмотра всех доступных параметров.

Использование завитка

Программа curl поддерживает больше протоколов и предоставляет более продвинутые функции для скачивания (и выгрузки) файлов, особенно для сценариев. Для простой загрузки файла используйте параметр -O и укажите URL-адрес файла:

Без параметра -O curl просто выведет содержимое на экран. Это поведение по умолчанию, которое полезно при передаче содержимого файла в качестве входных данных в другую команду.

Введите man curl или curl --help для получения дополнительной информации и просмотра всех доступных параметров. Для получения дополнительной информации см. официальную документацию по curl.

Использование aria2c

Для больших загрузок программа aria2c является лучшим выбором, поскольку она предлагает несколько подключений и параллельную загрузку, что может сократить время передачи. Для простой загрузки файла просто укажите URL-адрес файла:

Для большого файла добавьте параметр -x, чтобы использовать несколько подключений к файлу, что сократит время загрузки. Например, следующая команда открывает 4 соединения:

Вы также можете указать список URL-адресов в файле с помощью параметра -i, а затем использовать параметр -j, чтобы указать количество файлов, загружаемых параллельно. Например, для файла urls.txt, в каждой строке которого указан URL-адрес файла, следующая команда загрузит 4 таких файла одновременно:

Введите man aria2c или aria2c --help для получения дополнительной информации и просмотра всех доступных параметров. Для получения дополнительной информации см. официальную документацию по aria2.

→ Облачное хранилище: rclone

Использование rclone

Для облачного хранилища вы можете использовать модуль rclone для передачи файлов: модуль загрузки rclone . Это требует некоторой первоначальной настройки и настройки. Дополнительные сведения см. в руководстве по передаче файлов с помощью Rclone.

Использование git

Git – это программа управления исходным кодом, полезная для контроля версий и совместной разработки. Вы можете использовать команды git для управления репозиториями кода, а также для отправки и получения изменений в системы CARC и из них. Мы рекомендуем использовать центральный удаленный репозиторий в таких сервисах, как GitHub, GitLab или BitBucket. Вы можете разрабатывать код непосредственно в системах CARC в репозитории Git в одном из ваших каталогов и использовать удаленный репозиторий для резервного копирования и синхронизации изменений. Вы также можете разрабатывать код на своем локальном компьютере как часть репозитория Git, отправлять изменения в удаленный репозиторий, входить в систему CARC и извлекать изменения в соответствующий репозиторий, расположенный в одном из ваших каталогов.

Введите man git или git --help для получения дополнительной информации. Дополнительные сведения см. в официальной документации Git.

Проверка целостности файла после передачи

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

Чтобы сгенерировать контрольные суммы в исходном каталоге, точная используемая команда зависит от системы. В Linux это команда sha256sum ; в macOS это команда shasum ; а в Windows команда Get-FileHash . Вы также можете использовать приложения с графическим интерфейсом для создания контрольных сумм. Используя Linux в качестве примера, в исходном каталоге введите команду, подобную следующей:

Это создаст файл sha256sum.txt. Скопируйте этот файл в каталог назначения, куда файлы были перенесены, а затем из этого каталога введите:

Это сравнивает контрольные суммы файлов из источника с контрольными суммами файлов в месте назначения и распечатывает результаты. Передача прошла успешно, если все контрольные суммы совпадают, на что указывает статус OK. Обратите внимание, что сам файл sha256sum.txt не будет работать, так как его изначально не было в исходном каталоге.

Центр перспективных
исследовательских вычислений
3434 South Grand Avenue
3-й этаж (здание CAL)
Лос-Анджелес, Калифорния 90089
carc-support@usc. образование

Подпишитесь, чтобы получать информацию о предстоящих
обновлениях системы, событиях и объявлениях.

Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .

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

Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .

Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

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

Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .

API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

Снимок молодой женщины-дизайнера, использующей цифровой планшет в офисеhttp://195.154.178.81/DATA/i_collage/pu/shoots/804978.jpg

Передача файлов — это обмен файлами данных между компьютерными системами. Согласно Techopedia: «Передача файлов — это процесс копирования или перемещения файла с одного компьютера на другой по сети или через Интернет. Это позволяет совместно использовать, передавать или передавать файл или логический объект данных между различными пользователями и/или компьютерами как локально, так и удаленно». 1

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

Эволюция передачи файлов

Передача файлов началась в 1970-х годах, когда для распространения цифрового контента стали использовать не только дискеты. Одной из первых онлайн-платформ для обмена файлами была Usenet, электронная доска объявлений, которая позволяла членам сообщества публиковать новости. Эта функция позволяла пользователям обмениваться файлами данных с другими участниками группы новостей.

В 1985 году был создан первый протокол связи FTP. Стандарт передачи файлов позволял пользователям передавать данные между различными компьютерными системами, используя один и тот же набор правил и синтаксис.

К 1990-м годам Интернет сделал возможным общение по всему миру, позволив людям обмениваться информацией через огромную компьютерную сеть. America Online (AOL) стала одним из первых интернет-провайдеров.Он предлагал платформу электронной почты на основе подписки с рядом веб-служб, включая передачу файлов.

Музыкальный сайт Napster был создан в 1999 году и позволяет пользователям обмениваться аудиофайлами в формате mp3 со своими коллегами. В первый год тираж составил 4 миллиона песен. 2 Этот сайт обычно считается первой службой обмена файлами между одноранговыми узлами. В начале 2000-х он проложил путь к другим сетям обмена, таким как Gnutella и Freenet.

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

Авторское право и безопасность

Повсеместная передача файлов и совместное использование цифрового контента на протяжении многих лет создавали этические и юридические проблемы. Согласно Википедии: «Обмен файлами вызывает проблемы с авторскими правами и приводит ко многим судебным искам. Например, в одном случае Верховный суд США постановил, что создатели одноранговых сетей могут быть привлечены к ответственности, если их программное обеспечение позиционируется как инструмент для нарушения авторских прав». 3

Безопасность передачи файлов также является критической проблемой. Недавний опрос, проведенный Digital Shadows, выявил 1,5 миллиарда файлов данных, раскрытых через неправильно настроенные FTP-серверы, удаленную синхронизацию файлов и каталогов (Rsync) и другие системы передачи файлов. «Обширный доступ к данным включает документы, охватывающие данные о заработной плате, информацию о налоговых декларациях, медицинские записи, данные кредитных карт и интеллектуальную собственность». 4

Утечки данных и неудачная передача данных могут повлиять на прибыль и репутацию организации. Согласно исследованию, проведенному IBM Security и Институтом Поунмана (PDF, 1,6 МБ), средняя стоимость утечки данных в 2018 году составила 3,86 миллиона долларов. Ориентировочная стоимость каждой утерянной или украденной записи: 148 долларов США.

Оба протокола используются для загрузки и скачивания в Интернете, для текстовых и двоичных файлов, как через TCP/IP. Но есть много различий в деталях:

Скорость передачи

Возможно, самый распространенный вопрос: что быстрее для переводов?

Учитывая все подробности на этой странице. Что делает FTP быстрее:

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

Загрузить

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

Возможно, стоит обратить внимание на то, что WebDAV — это протокол поверх HTTP, предоставляющий возможности, подобные файловой системе

ASCII/двоичный/EBCDIC

Если пункт назначения использует другую схему кодирования символов конца строки, ftp исправит ее для пункта назначения. Например, unix использует только символ NL (новая строка x'0A'), а MS Windows использует CR и LF (возврат каретки и перевод строки x'0D0A'). EBCDIC указывает, что выполняется преобразование из ASCII в EBCDIC (используется на старых мейнфреймах).

Заголовки

Конвейерная обработка

Что-то связанное, хотя и не похожее, это поддержка FTP для запроса нескольких файлов на параллельную передачу с использованием одного и того же управляющего соединения. Это, конечно, использование новых TCP-соединений для каждой передачи, поэтому у него будут разные показатели производительности. Кроме того, для этого требуется, чтобы сервер поддерживал такие операции (т. е. прием новых команд во время передачи), чего многие серверы не поддерживают.

Команда/ответ FTP

Две связи

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

Брандмауэры и NAT

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

Это также означает, что если обе стороны находятся за NAT, вы не можете использовать FTP!

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

Активный и пассивный

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

Зашифрованные управляющие соединения

Поскольку брандмауэры должны понимать FTP, чтобы иметь возможность открывать порты для вторичного соединения и т. д., существует огромная проблема с зашифрованным FTP (FTP-SSL или FTPS), поскольку в этом случае управляющее соединение отправляется в зашифрованном виде, а брандмауэры не могут интерпретировать команды, которые имеют дело с созданием второго соединения. Кроме того, стандарту FTPS потребовалось очень много времени, чтобы «дойти до конца», поэтому в дикой природе существует целый ряд гибридных версий.

Аутентификации

Скачать

Оба протокола поддерживают загрузку. Раньше у обоих протоколов были проблемы с файлами размером более 2 ГБ, но это история для современных клиентов и серверов в современных операционных системах.

Диапазоны/резюме

Известно, что в прошлом возобновление передачи для FTP, которое начинается за пределами позиции 2 ГБ, вызывало проблемы, но в наши дни должно быть лучше.

Постоянные подключения

Во время передачи "фрагментированного кодирования" отправляющая сторона отправляет по сети поток блоков [size-of-data][data] до тех пор, пока не закончатся данные для отправки, а затем отправляет блок нулевого размера обозначьте конец этого.

Еще одно очевидное преимущество (помимо необходимости снова открывать соединение для следующей передачи) кодирования фрагментами по сравнению с простым закрытием соединения — это возможность обнаруживать преждевременное завершение соединения.

Сжатие

FTP предлагает официальную "встроенную" кодировку длин серий, которая сжимает объем отправляемых данных, но не слишком сильно для обычных двоичных данных. Это также традиционно делалось для FTP с использованием различных «хакерских» подходов, которых никогда не было ни в одной спецификации FTP.

FTP поддерживает "передачу третьим сторонам", часто называемую "FXP". Это позволяет клиенту попросить сервер отправить данные на третий хост, хост, который не совпадает с клиентом. Это часто отключается на современных FTP-серверах из соображений безопасности.

Виртуальный хостинг на основе имени

В FTP вы вообще не можете использовать виртуальный хостинг на основе имени, пока команда HOST не будет реализована на сервере, с которым вы общаетесь, и в используемом вами ftp-клиенте. Это недавняя спецификация без многих реализаций.

Список каталогов

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

Поддержка прокси

FTP также всегда использовался поверх прокси-серверов, но это никогда не было стандартизировано и всегда использовалось множество различных специальных подходов.

Далее

Спасибо

Отзывы и улучшения: Мика Коуэн, Джо Тач, Остин Аппель, Деннис Герман, Джош Хиллман

Читайте также: