Опубликовано

Протокол передачи файлов FTP

В настоящее время, когда популярность World Wide Web достаточно велика, объем трафика передаваемого по сети Internet по протоколу FTP занимает тем не менее первое место, несколько опережая объем трафика по протоколу HTTP. В этом свете организация файловых архивов в рамках технологии TCP/IP является крайне актуальной задачей.

Архивы используют для решения разных задач, однако наиболее популярными в сети являются свободно доступные архивы или такие архивы, доступ к которым разрешен по анонимному идентификатору пользователя. Таким образом эти архивы можно использовать в качестве:

  • коллекции свободно распространяемого программного обеспечения;
  • коллекции программ для бета-тестирования;
  • коллекции нормативных и регламентных документов;
  • и т.п.

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

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

В настоящее время всю систему взаимодействия компонентов FTP-обмена можно представить в виде схемы представленной на рисунке 1.

Рис. 1. Схема взаимодействия компонентов FTP-обмена

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

FTP (File Transfer Protocol или «Протокол Передачи Файлов») — один из старейших протоколов в Internet и входит в его стандарты. Обмен данными в FTP проходит по TCP-каналу. Построен обмен по технологии «клиент-сервер». На рисунке 2 изображена модель протокола.

Рис. 2. Модель протокола

В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.

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

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

FTP — это интерфейс пользователя при обмене файлами по одноименному протоколу. Программа устанавливает канал управления с удаленным сервером и ожидает команд пользователя. Идентификатор удаленного сервера указывается либо аргументом программы, либо в команде интерфейса open.

Если команда ftp работает с пользователем и ожидает его команд, то на экране отображается приглашение «ftp>».

Синтаксис команды:

ftp [-v][-d][-i][-n][host]

  • v — подавляет ответы сервера и статистику передачи данных;
  • n — управляет режимом идентификации пользователя. Если указан этот ключ, то сначала проверяется файл .netrc;
  • i — выключает подтверждения передачи файла при массовом копировании файлов;
  • d — включает режим отладки;
  • g — отключает прозрачность передачи имен.

Первой такой командой является команда open. По этой команде открывается сеанс работы с удаленным сервером:

ftp>open ftp.cmsbook.ru

После выдачи такой команды последуют запросы идентификации пользователя. Зарегистрировать пользователя можно и по команде user:

ftp> user anonymous

В данном примере пользователь не имеет особых прав доступа на удаленном сервере и поэтому регистрируется как аноним. В ответ на запрос идентификации следует в этом случае ввести свой почтовый адрес. Обычно достаточно ввести что-то похожее на почтовый адрес для допуска к ресурсам архива, но бывают и дотошные серверы, которые проверяют наличие такого адреса, поэтому лучше никого не обманывать и честно регистрироваться.

Следующими по важности командами являются команды cd и ls (dir). Назначение этих команд достаточно прозрачно и понятно всем пользователям — навигация по дереву файловой системы и просмотр содержания каталогов. Здесь следует посоветовать пользоваться при просмотре каталогов командой ls с дополнительными параметрами:

ftp>ls -FC

В этом случае пользователь может получить многоколоночный отчет с указанием типов файлов. Однако не все серверы отрабатывают эту комбинацию.

Так как в процессе приема-передачи участвуют две машины, то кроме навигации в удаленной файловой системе нужна еще навигация в локальной файловой системе. Для этой цели служит команда lcd (локальная cd). Кроме этого пользователь может выдать и любую команду локальной оболочки, если предварит ее символом «!»:

ftp> !pwd

По этой команде будет выдано имя текущей директории на локальной машине.

И, наконец, самыми важными являются команды приема/передачи данных get, put, mget, mput и bin. По командам get и put можно принять или передать один файл:

ftp> get README.TXT

Команды mget, mput предназначены для приема/передачи набора файлов:

ftp> mget *.gz

Из примера видно, что в последнем случае применяется маска «*». Обычно при передаче групп файлов для каждого файла запрашивается подтверждение. Для того, чтобы избежать этого перед приемом/передачей, следует выдать команду prompt. Последняя переключает режим запроса подтверждения и при повторном использовании этой команды состояние запроса подтверждения восстанавливается. Другой полезной командой является команда hash:

ftp> hash #

Символ «#» можно заменить на любой другой. При работе по медленным линиям или при передаче больших файлов после включения режима hash пользователь имеет возможность видеть процесс передачи данных (знак «#» выдается после передачи каждого блока). И последнее, на чем следует остановить внимание — это команда bin. После выдачи этой команды по умолчанию данные будут передаваться в режиме передачи двоичных данных. Последнее чрезвычайно важно, т.к. при передачи в ASCII нельзя передать программы и архивированные данные. Часто бывает полезно включить режим bin и для символьных данных с произвольной длиной строки, например файлов postscript (*.ps), т.к. в ASCII режиме есть ограничение на длину строки (обычно 254 символа).

Для выхода из ftp следует выполнить команду quit.

Практическое задание

— необходимо скачать приложение FileZilla Client (https://filezilla-project.org/)

— настроить подключение к серверу ftp.cmsbook.ru

(заранее получите логин и пароль подключения)

— cоздать и скопировать тестовый файл index.php

Содержимое текстового файла:

<html>

<head>

</head>

<body>

<b> Hello world!!!</b>

</body>

</html>

  • запустите браузер и в адресной строке браузера перейдите на веб-портал по адресу http://kurs№.cmsbook.ru/index.php
  • при успешной загрузке главной страницы веб-портала появиться надпись

Hello world!!!

  • затем скопируйте на сервер любой текстовый документ, например file1.doc
  • скачайте данный документ с веб-портала с помощью ссылки

http://kurs№.cmsbook.ru/file1.doc

  • скачайте данный документ по протоколу FTP, пройдя авторизацию в браузере

вызовите ссылку ftp://ftp.cmsbook.ru

  • удалите данный файл на сервере;
  • создайте каталог c именем catalog и скопируйте в данный каталог любой графический файл img1.jpg
  • скачайте данный файл с веб-портала с помощью ссылки

http://kurs№.cmsbook.ru/catalog/img1.jpg

— переименуйте файл img1.jpg в файл с именем img2.jpg

— удалите каталог catalog

  • оформите отчет.