4.1.3. Частные вопросы
4.1.3.1. Нестандартные команды (Command Verbs)
FTP позволяет использовать «экспериментальные» команды, имена которых начинаются с "X". При последующем включении команд в стандартные спецификации, они по-прежнему могут начинаться с "X". Ниже представлен список «экспериментальных» команд:
RFC-959 "Экспериментальные" MKD XMKD RMD XRMD PWD XPWD CDUP XCUP CWD XCWD
Для всех реализаций FTP рекомендуется распознавать обе формы этих команд, просто просматривая дополнительные записи в таблице команд.
- Реализация
- Клиент FTP может обращаться к серверу, поддерживающему только X-команды, с помощью переключателя режима или за счет автоматического использования следующей процедуры — если стандартна (RFC 959) любой из перечисленных выше команд была отвергнута с кодом 500 ил 502, следует попытаться использовать расширенную команду; все остальные отклики будут передаваться пользователю.
4.1.3.2. Время бездействия
Для серверных процессов FTP рекомендуется задавать время бездействия, по истечении которого процесс будет прерываться в случае отсутствия активности (нет команд или передачи данных). Значение тайм-аута следует делать настраиваемым и по умолчанию время бездействия должно составлять 5 минут.
A client FTP process ("User-PI" in RFC 959) will need timeouts on responses only if it is invoked from a program.
- Обсуждение
- Без использования тайм-аута сервер FTP может неограниченно долго оставаться в состоянии ожидания при крахе клиента без разрыва управляющего соединения.
4.1.3.3. Одновременное управление и передача данных
- Обсуждение
При разработке протокола FTP ставилась задача обеспечения возможности пользователю передать в любой момент в процессе передачи данных команду STAT, на которую сервер будет незамедлительно возвращать информацию о состоянии (например, размер переданной части файла). Подобно этому команда ABOR должна обеспечивать возможность прерывания передачи данных в любой момент.
К несчастью, некоторые ОС (в небольших машинах) затрудняют программирование одновременных операций. Отдельные разработчики идут по пути наименьшего сопротивления, не поддерживая в своих реализациях возможности управления в процессе передачи данных. Но даже в минимальной реализации серверы должны быть готовы к восприятию и отсрочке команд STAT и ABOR, получаемых во время передачи данных.