4.1.2.6. Команда PASV: RFC 959, 4.1.2
Сервер FTP должен поддерживать команду PASV.
Если в одной сессии организуется множество передач файлов различным клиентам, новые команды PASV должны вводиться перед каждой командой новой передачи для получения уникального номера порта.
- Реализация
Формат отклика 227 на команду PASV не стандартизован должным образом. В частности, клиент FTP не может предполагать наличие круглых скобок, показанных на странице 40 в RFC 959 (и, фактически, опущенных на рисунке 3, стр.43). Следовательно, клиент FTP, интерпретирующий отклик PASV, должен сканировать весь отклик для обнаружения первой цифры адреса хоста и номера порта.
Отметим, что h1,h2,h3,h4 задает IP-адрес серверного хоста, который передал отклик, а p1,p2 указывает нестандартный порт выделенный для передачи данных командой PASV.
4.1.2.7. Команды LIST и NLST: RFC 959, 4.1.3
Данные, возвращаемые командой NLST, должны содержать только простой список корректных (legal) параметров, которые сервер может непосредственно использовать как аргументы в последующих командах передачи данных для отдельных файлов.
Для данных, возвращаемых командами LIST и NLST, рекомендуется использовать подразумеваемый тип TYPE AN, если не задан в качестве текущего тип EBCDIC; если в качестве подразумеваемого задан тип TYPE EN, рекомендуется использовать этот тип.
- Обсуждение
Многие клиенты FTP поддерживают макрокоманды, для загрузки (get) или выгрузки (put) файлов, соответствующих шаблону, с использованием команды NLST для получения списка имен. Расширение multiple-put является локальным для клиента, а multiple-get требует взаимодействия с сервером.
Для команд LIST и NLST разработан подразумеваемый тип, обеспечивающий совместимость с существующими клиентами FTP и поддерживающий групповые команды get.