Главная > Программирование > Программирования сетевых взаимодействий в Java
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.1.3. Основные команды FTP протокола

Команды управления контролем передачи данных, которыми обмениваются «User-PI» и «Server-PI», можно разделить на три большие группы:

• Команды управления доступом к системе;

• Команды управления потоком данных;

• Команды FTP-сервиса.

Рассмотрим несколько наиболее популярных и характерных команд из каждой группы. Среди команд управления доступом к системе следует отметить следующие:

• USER. Как правило, эта команда открывает сессию FTP между клиентом и сервером. Аргументом команды является имя (идентификатор) пользователя для работы с файловой системой. Эта команда может подаваться не только в начале, но и в середине сессии, если, например, пользователь желает изменить идентификатор, от имени которого будут проводиться действия. При этом все переменные, относящиеся к старому идентификатору, освобождаются. Если во время изменения идентификатора происходит обмен данными, обмен завершается со старым идентификатором пользователя.

• PASS. Данная команда подается после ввода идентификатора пользователя и, в качестве аргумента, содержит пароль пользователя. Напомним, что данные аутентификации FTP передаются по сети открытым текстом, поэтому для обеспечения защищенности канала пользователю необходимо предпринимать дополнительные меры.

• CWD. Команда позволяет пользователю работать с различными каталогами удаленной файловой системы. Аргументом команды является строка, указывающая путь каталога удаленной файловой системы, в котором желает работать пользователь.

• REIN. Команда реинициализации. Эта команда очищает все переменные текущего пользователя и сбрасывает параметры соединения. Если в момент подачи команды происходит передача данных, передача продолжается и завершается с прежними параметрами.

• QUIT. Команда закрывает управляющий канал. Если в момент подачи команды происходит передача данных, канал закрывается после окончания передачи.

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

• PORT. Команда назначает адрес и порт хоста, который будет использоваться как активный участник соединения по каналу передачи данных. Аргументами команды являются 32-битный IP-адрес и 16-битный номер порта соединения. Эти значения разбиты на шесть 8-битных полей и представлены в десятеричном виде: h1, h2, h3, h4, p1, p2, где hN - байты адреса (от старшего к младшему), a pN — байты порта (от старшего к младшему). Например, если мы хотим использовать хост 10.145.56.1:1997, команда PORT будет выглядеть следующим образом:

PORT 10, 145, 56, 1, 7, 205

• PASV. Эта команда отправляется модулю, который будет играть пассивную роль в передаче данных, т. е. «слушать» соединение. Ответом на данную команду должна быть строка, содержащая адрес и порт хоста, находящиеся в режиме ожидания соединения в формате команды PORT - «h1, h2, h3, h4, p1, p2».

• Команды TYPE, STRU, MODE определяют, соответственно, тип передаваемых данных (ASCII, Image и др.), структуру или формат передачи данных (File, Record, Page), способ передачи (Stream, Block и др.). Использование этих команд очень важно при построении взаимодействия в гетерогенных средах и весьма отличающихся операционных и файловых систем взаимодействующих хостов. Более подробное описание типов, форматов и способов передачи данных по FTP вы можете найти, например, в RFC-959.

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

• RETR. Эта команда указывает модулю «Server-DTP» передать копию файла, заданного параметром этой команды, модулю передачи данных на другом конце соединения.

• STOR. Команда указывает модулю «Server-DTP» принять данные по каналу передачи данных и сохранить их как файл, имя которого задано

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

• Команды RNFR и RNTO должны следовать одна за другой. Первая команда содержит в качестве аргумента старое имя файла, вторая - новое. Последовательное применение этих команд переименовывает файл.

• ABOR. Команда предписывает серверу прервать выполнение предшествующей сервисной команды (например, передачу файла) и закрыть канал передачи данных.

• Команда DELE удаляет указанный файл.

• Команды MKD и RMD выполняют команды управления каталогами, соответственно, создать и удалить указанный в аргументе каталог.

• Список файлов каталога можно получить командами LIST и NLST.

Более обстоятельное описание команд протокола FTP (их более 30) вы можете найти в стандарте RFC-959.

Все команды FTP-протокола отправляются «User-PI» в текстовом виде -по одной команде на строке. Каждая строка команды — идентификатор и аргументы - заканчивается символами <CRLF>. Имя команды отделяется от аргумента символом пробела - <SP>.

Обработчик команд возвращает код обработки каждой команды, состоящий из трех цифр. Коды обработки составляют определенную иерархическую структуру и, как правило, определенная команда может возвратить только определенный набор кодов. За кодом обработки команды следует символ пробела - <SP>, затем следует текст пояснения. Например, строка успешного завершения операции выглядит следующим образом: «200 Command okay».

<< Предыдущий параграф Следующий параграф >>