что и удаленный файл.
FTP позволяет записывать имена удаленных файлов так же, как это делают пользователи удаленного хоста. Копируя файл на локальный компьютер, можно присвоить ему локальное имя файла. Если имя не присваивается, то при необходимости FTP преобразует имя удаленного файла в формат, допустимый для локального хоста. Иногда это приводит к преобразованию символов из нижнего регистра в верхний и к усечению имен.
Протокол FTP имеет характерный стиль операций. Всякий раз, когда должен быть скопирован файл, для пересылки данных открывается и используется второе соединение. После команды
200 PORT command successful.
150 Opening ASCII mode data connection for rfcl842.txt (24143 bytes).
На рис. 14.1 показан доступ к другому общедоступному архиву, но через приложение для пересылки файлов
Рис. 14.1. Доступ к архиву пересылки файлов из программы
Файлы могут копироваться перетаскиванием их значков из одного окна в другое или щелчком мыши на кнопке со стрелкой. Имя локального файла можно ввести в окне слева, расположенном ниже метки Files.
К тому же самому сайту можно обратиться и из клиента пересылки файлов
Рис. 14.2. Доступ к архиву пересылки файлов из
14.3 Модель FTP
Как видно из приведенного выше диалога, пользователь взаимодействует с
В сущности, управляющее соединение — это обычный сеанс
Когда пользователь запрашивает пересылку файла, открывается отдельное соединение для передачи данных, и по нему пересылается файл. Это соединение используется и для пересылки содержимого каталогов. Модель FTP показана на рис. 14.3. Обычно сервер использует порт 20 для соединения пересылки данных.
Рис. 14.3. Управляющее соединение и соединение пересылки данных в FTP
Во время вышерассмотренного диалога конечный пользователь вводил запросы на изменение удаленного каталога и пересылку файла. Эти запросы преобразовывались в формат команд FTP и пересылались по управляющему соединению на удаленный сервер FTP. Пересылка файлов производится по отдельному соединению, задаваемому для обмена данными.
14.4 Команды FTP
Какие команды можно передавать по управляющему соединению? Существуют команды аутентификации, дающие возможность пользователю указать идентификатор, пароль и регистрационную запись для работы с FTP.
Команды пересылки файлов позволяют:
■ Копировать одиночный файл между хостами
■ Копировать несколько файлов между хостами
■ Добавлять содержимое локального файла к удаленному файлу
■ Копировать файл и добавлять к его имени номер для формирования уникального имени (например, файлы ежедневной регистрации получат имена log.1, log.2 и т.д.)
Команды обслуживания файлов разрешают:
■ Просмотреть список файлов каталога
■ Узнать текущий каталог и изменить его на другой
■ Создавать и удалять каталоги
■ Переименовывать или удалять файлы
Управляющие команды служат для:
■ Идентификации пересылки файлов ASCII, EBCDIC или двоичных файлов
■ Проверки структурирования файла (как последовательность байт или как последовательность записей)
■ Указания способа пересылки файла (например, как поток октетов)
Пересылаемые по управляющему соединению команды имеют стандартный формат. Например, команда
FTP не накладывает ограничений на пользовательский интерфейс, поэтому разработчики могут создавать (как мы уже видели) хитроумные системы для настольных компьютеров либо простые в применении клиентские программы. Т.е. ввод с клавиатуры get, перетаскивание мышью значка или щелчок на имени файла транслируются в одну и ту же команду
Пользовательский интерфейс обычно имеет дополнительные команды для настройки локального окружения, например:
■ Запросить FTP о выводе звукового сигнала при завершении пересылки файла
■ Для текстового интерфейса запросить вывод символа диез (#) при пересылке каждого блока данных
■ Установить автоматическое преобразование регистра символов в имени файла или таблицу трансляции символов
Полный набор поддерживаемых конкретным хостом функций можно узнать через справку клиента FTP или в техническом описании программы.