FTP (File Transfer Protocol [1]) — протокол передачи файлов). Для начала - короткий экскурс в историю...
FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году. До начала 90-х годов на долю FTP приходилось около половины трафика в сети Интернет. Он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.
Протокол FTP относится к протоколам прикладного уровня и для передачи данных использует транспортный протокол TCP. Команды и данные, в отличие от большинства других протоколов передаются по разным портам. Порт 20 используется для передачи данных, порт 21 для передачи команд. В случае, если передача файла была прервана по каким-либо причинам, протокол предусматривает средства для докачки файла, что бывает очень удобно при передаче больших файлов.
Основные команды:
- ABOR — Прервать передачу файла
- CDUP — Сменить директорию на вышестоящую.
- CWD — Сменить директорию.
- DELE — Удалить файл (DELE filename).
- HELP — Выводит список команд принимаемых сервером.
- LIST — Возвращает список файлов директории. Список передается через соединение данных (20 порт).
- MDTM — Возвращает время модификации файла.
- MKD — Создать директорию.
- NLST — Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
- NOOP — Пустая операция
- PASV — Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд.
- PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
- PWD — Возвращает текущую директорию.
- QUIT — Отключиться
- REIN — Реинициализировать подключение
- RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
- RMD — Удалить директорию
- RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
- SIZE — Возвращает размер файла
- STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
- SYST — Возвращает тип системы(UNIX, WIN, …)
- TYPE — Установить тип передачи файла(Бинарный, текстовый)
- USER — Имя пользователя для входа на сервер
Пример FTP-сессии:
# telnet localhost 21 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 FTP Server ready USER username 331 Password required for aller PASS userpass 230 User aller logged in 230 You've logged on 43 times, username PASV 227 Entering Passive Mode (127,0,0,1,225,198). SYST 215 UNIX Type: L8 HELP 214-The following commands are recognized (* =>'s unimplemented): CWD XCWD CDUP XCUP SMNT* QUIT PORT PASV EPRT EPSV ALLO* RNFR RNTO DELE MDTM RMD XRMD MKD XMKD PWD XPWD SIZE SYST HELP NOOP FEAT OPTS AUTH CCC* CONF* ENC* MIC* PBSZ PROT TYPE STRU MODE RETR STOR STOU APPE REST ABOR USER PASS ACCT* REIN* LIST NLST STAT SITE MLSD MLST MKD folder 257 "/folder" - Directory successfully created CWD folder |
Вот, собственно, примеры выполнения некоторых команд. Это так - для общего развития. Возможно пригодится ;)