File Transfer Protocol

FTP — протокол передачи файлов [PR85] дает возможность пользователю копировать файлы на удаленный компьютер и с него. Клиентская программа посылает команды серверной программе для координации копирования файлов между двумя компьютерами в интересах пользователя.

ПРИМЕНЕНИЕ FTP

FTP-клиент связывается с удаленным Компьютером и предлагает пользователю ввести идентификатор для входа и пароль. Однако некоторые пользователи могут не иметь собственных учетных записей на удаленном компьютере. Чтобы предоставить доступ любым пользователям, многие FTP-серверы имеют специальную «анонимную» учетную запись, которая не требует, чтобы пользователь знал пароль. FTP-cepвер координирует доступ к набору файлов в различных каталогах. FTP-сервер обычно имеет специальный каталог с одним или несколькими подкаталогами, которые могут быть доступны для FTP-клиентов. Многие FTP-клиенты имеют простой интерфейс командной строки. Пользователь может входить на FTP-сервер, просматривать каталоги, отправлять или получать файлы. Интерфейс может давать возможность отправлять или принимать несколько файлов с помощью одной команды. Последние версии FTP-клиентов предоставляют графический пользовательский интерфейс. Web-браузер дает возможность пользователям указывать желаемый файл в виде URL (например, ftp://ftp.foo.com^ar/neatfiIe). Браузер выполняет низкоуровневые задачи по соединению с FTP-сервером от лица анонимного пользователя для отправки последовательности FTP-команд и для загрузки запрошенного файла.

ПРОТОКОЛ FTP

FTP использует отдельные TCP-соединения для передачи команд управления и данных. По умолчанию FTP-клиент соединяется с портом 211 на удаленном компьютере. Клиент использует это соединение для отправки команд и получения ответов, при этом соединение продолжает существовать на протяжении выполнения нескольких команд. Спецификация FTP включает в себя более 30 различных команд, которые передаются но управляющему соединению в формате ASCII NVT. Команды нечувствительны к регистру и могут иметь аргументы; каждая команда заканчивается последовательностью из двух символов: возврат каретки (CR) и перевод строки (LF). Эти команды могут отличаться от команд, вводимых пользователем в FTP-клиенте. Передача одного файла осуществляется одной командой пользовательского уровня, которая предписывает клиенту отправить последовательность команд FTP-серверу. FTP-сервер отвечает на каждую команду трехзначным кодом ответа (для FTP-клиента) и необязательным текстовым сообщением (для пользователя). Первые две цифры предоставляют информацию о типе ответа; третья цифра не имеет определенного значения. Например, в коде 200 ("команда успешно выполнена") цифра "2" указывает на успешное завершение команды, а следующий за ней "0" указывает на то, что ответ имеет отношение к синтаксису.

Управляющее соединение продолжает поддерживаться в процессе обмена командами и данными между клиентом и сервером в ходе их диалога. Типичное взаимодействие между клиентом и сервером начинается с команды, которая идентифицирует учетную запись (например, анонимную) на компьютере сервера, вслед за которой идет команда, отправляющая пользовательский пароль (например, адрес электронной почты пользователя для анонимной учетной записи FTP). Параметры этих команд берутся из пользовательского ввода. Сервер использует эту информацию для принятия решения, к каким файлам предоставить доступ данному клиенту. Например, для анонимного пользователя доступ может быть ограничен небольшой грунной файлов. В начале сеанса FTP-клиент может увидеть корневой каталог, предоставляемый FTP-сервером. Следующее действие клиента зависит от запроса, инициированного пользователем, например, чтение файла, запись файла, вывод списка файлов в текущем каталоге, переход к другому каталогу, вывод имени текущего каталога и т.д.

Файл передается с использованием отдельного соединения, установленного компьютером, отправившим данные. Если пользователь хочет получить файл foo.txt, сервер инициирует создание ТСР-соединения. Однако сервер не знает, какой помер порта использовать в качестве норта-адресатадля FTP-клиента. Перед отправкой команды на загрузку файла foo.txt FTP-клиент просит свою базовую операционную систему выделить номер порта (больше 1023). FTP-клиент использует управляющее соединение, чтобы проинформировать сервер о выбранном номере порта для соединения, используемого для передачи данных. Сервер создает соединение для передачи данных, записывает содержимое файла foo.txt и закрывает соединение. FTP-клиент считывает байты из сокета до получения символа конца файла (EOF). На практике некоторые организации имеют межсетевые экраны, которые не позволяют внешним компьютерам инициировать ТСР-соединения. Чтобы позволить клиентам за межсетевыми экранами получать данные с FTP-cepверов, в FTP имеется команда, которая принуждает сервер играть пассивную роль в установлении соединения для работы с данными.

Файл обычно передается как поток байтов с закрытием ТСР-соединения при достижении конца файла (EOF). Спецификация FTP также описывает блочныйре- жим, который позволяет отправителю передавать файл как серию блоков данных; каждый блок начинается с одного или нескольких байтов заголовка. Блочный режим дает возможность отправителю пересылать несколько файлов через одно и то же соединение для передачи данных; при этом каждый файл заканчивается на границе блока. Однако блочный режим не получил широкого распространения. На практике каждая пересылка данных требует отдельного ТСР-соединения. В противоположность этому управляющее соединение может существовать в ходе нескольких передач данных. В FTP имеется команда для прерывания передачи исходящих данных без завершения управляющего соединения. Это дает возможность пользователю завершить копирование файла без требования к клиенту повторить процесс соединения с сервером и аутентификации пользователя.

В то время как в Telnet передача данных ограничена 7-битными символами ASCII, FTP позволяет использовать более широкий набор типов данных, включая двоичные файлы. Однако FTP-сервер не предоставляет информации о типе каждого из файлов. Вместо этого FTP-клиент должен запросить передачу данных в определенной форме. Например, предположим, что пользователь хочет выгрузить файл picture.gif с локальной машины на удаленный компьютер. Пользователю нужно запросить двоичную передачу данных. Это приведет к выдаче FTP-клиентом команды FTP-серверу переключиться в двоичный режим. Клиент и сервер не могут указать режим передачи без помощи от пользователя, поскольку локальный файл напрямую не ассоциируется с дополнительными атрибутами. Расширение .gif в имени файла не обязательно указывает на тип файла. После копирования файла пользователь может запустить отдельную программу для отображения или модификации содержимого файла, основываясь на знании пользователем типа файла. Например, пользователь может вызвать ghostview для отображения файла PostScript.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100