Чем www отличается от ftp кратко

Обновлено: 03.07.2024

FTP также является ресурсом Internet. URL для ftp выглядит так: ftp://<user>:<password>@<host>:<port>/<url-path> , где user - имя пользователя, password - его пароль, host - доменное имя или IP адрес сервера, url-path - путь к файлу. На практике наиболее часто используемым вариантом ftp является анонимный. Как уже было сказано выше, анонимный ftp ничем не отличается от "остального". Просто в качестве имени пользователя достаточно указать anonymous, а в качестве своего пароля - свой почтовый адрес. Для анонимного ftp в url сделан упрощенный синтаксис: ftp://<host>/<url-path> , то есть при отсутствии имени автоматически будет вставлено anonymous. Порт также обычно не указывается, а используется стандартный 21.

Основной предмет критики - отсутствие такой полезной функции как reget. Это особенно актуально для низкоскоростных российских коммуникаций, где скорость порой падает до нескольких десятков байт в секунду. При такой скорости разрыв соединения - очень частое явление. И переслать файл в несколько мегабайт уже является большой проблемой. При потере соединения Вы воспользуетесь reget в ftp клиенте, однако в среде WWW Вам, увы, придется начать все сначала. Более того, если Вы работаете с WWW через proxy, основанном на программном обеспечении от CERN, то есть вероятность, что при обрыве соединения он решит, что весь файл уже переслан и на все попытки получить его с удаленного WWW сервера proxy будет выдавать урезанный файл со своего диска. В таком случае два совета - либо смените proxy сервер, либо вообще отключите его использование.

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

Некоторые выводы:

  • Преимущества:
    • Высокая интеграция в гипертекстовое пространство Internet.
    • Современное программное обеспечение.

    Как нетрудно заметить, все недостатки компенсируются надежными и быстрыми линиями связи. Уже достаточно канала в 256k у провайдера, и основные проблемы исчезают.

    Кроме того, актуальность просто пересылки файлов для рядового пользователя падает. Если раньше большое количество документации, звуков, изображений лежало мертвым грузом на ftp, то теперь все чаще ту же информацию можно получить в виде красиво оформленного, и с большей вероятностью более свежего, html файла. Однако предсказать дату, когда получение информации не будет выражаться в виде конкретного файла пока невозможно. И большинство людей так и работает "по старинке". Все-таки архивы программ ПОКА еще остаются файловыми архивами.

    Что такое FTP?

    FTP - это протокол, который используется для загрузки и скачивания файлов между FTP-сервером и клиентским компьютером в сети с использованием TCP. Он работает на уровне приложений, как описано в модели OSI. При передаче файла с одного устройства на другое с помощью FTP, весь файл передается и сохраняется в памяти устройства. Кроме того, протокол FTP позволяет не только загружать файлы с сервера на клиентский компьютер, но также загружать файлы с клиентского компьютера на сервер; Итак, FTP считается двусторонней системой.

    Этот протокол широко используется разработчиками веб-сайтов для загрузки файлов на веб-сайты с персонального компьютера и для загрузки файлов с веб-сайтов на персональные компьютеры.

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

    Служба FTP (от протокола - File Transfer Protocol) - предназначена для обмена файлами.

    FTP служба построена по хорошо известной схеме "клиент-сервер".

    Клиент (браузер,Windows Commander, NetVampir . ) посылает запросы серверу и принимает файлы.

    Сервер FTP (vsftpd, IIS . ) обрабатывает запросы клиента на получение файла.

    Взаимодействие клиент и сервера по протоколу FTP.

    Служба FTP базируется на двух стандартах:

    URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;

    FTP (File Transfer Protocol) - протокол передачи файлов.

    Протокол FTP

    File Transfer Protocol - протокол передачи файлов, протокол высокого уровня (а именно, уровня приложений).
    . Используется службой FTP для передачи файлов.

    Первый стандарт - RFC114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).

    Последняя версия - RFC959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).

    FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла.

    Соединение данных - соединение для передачи файлов.

    Схема двух каналов соединения по протоколу FTP

    В старых версиях для передачи данных использовался только 20-й порт (активный режим), в современных версиях FTP-серверов порт для канала данных может назначаться сервером из нестандартных (N > 1024) портов (пассивный режим).

    Протокол FTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером.

    Работа FTP на пользовательском уровне содержит несколько этапов:

    Идентификация (ввод имени и пароля).

    Определение режима обмена (поблочный, поточный, ascii или двоичный).

    Выполнение команд обмена (get, mget, dir, mdel, mput или put).

    Завершение процедуры (quit или close).

    Различие работы пассивного режима и активного.

    Действия сервера и клиента:

    Клиент устанавливает связь и посылает запрос на 21 порт сервера с порта N (N>1024)

    Сервер посылает ответ на порт N (N>1024) клиента

    Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1

    Действия сервера и клиента:

    Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с порта N (N>1024)

    Сервер посылает ответ и сообщает номер порта для канала данных P (P>1024) на порт N (N>1024) клиента

    Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P (P>1024)

    Активный FTP выгоден для FTP-сервера, но вреден для стороны клиента. FTP сервер пытается соединиться со случайными высокими (по номеру) портами на клиенте, такое соединение наверняка будет блокировано брандмауэром на стороне клиента.

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

    Ниже приведены примеры запроса клиента и ответа сервера:

    Пример запроса на чтение каталога


    сервер: 220 megillah.demos.su FTP server (Version wu-2.4) ready. - // код ошибки, имя хоста, протокол, версия сервера, только для чтения
    клиент: USER anonymous - // имя пользователя
    сервер: 331 Guest login ok, send your complete e-mail address as password.- //код ошибки, имя пользователя корректно, нужен пароль
    клиент: PASS ****** - // пароль клиента
    сервер: 230 Guest login ok, access restrictions apply. - //код ошибки, пользователь идентифицирован, продолжайте
    клиент: CWD / - // переход к корневой директории
    сервер: 250 CWD command successful. - // команда выполнена успешно
    клиент: TYPE A - // передавать информацию в текстовом виде
    сервер: 200 Type set to A. - // текстовый тип установлен
    клиент: PASV - // сервер должен определить нестандартный порт данных, начать его слушать
    сервер: 227 Entering Passive Mode (194,87,5,52,9,75) - // сервер возвращает ip-адрес (194.87.5.52) и номер порта (2383)
    клиент: LIST - // передать по соединению данных список имен файлов в директории
    сервер: Data connection established - // установлено соединение данных
    клиент: 150 Opening ASCII mode data connection for /bin/ls. - // татус файла правилен, подготавливается открытие канала

    Пример запроса файла

    управления доступом
    USER - имя пользователя
    PASS - пароль
    CWD - имя новой рабочей директории
    CDUP - перейти на один уровень директории вверх
    QUIT - выход

    действия
    RETR - имя файла (взять файл)
    STOR - имя файла (передать файл)
    REST - маркер (для докачки уже частично скаченного файла - обычно указывается смещение в байтах)
    DELE - имя удаляемого файла
    RMD - имя удаляемой директории
    MKD - имя создаваемой директории
    PWD - в ответе указать имя текущей директории
    LIST [имя директории или файла] - передать по соединению данных список имен файлов в директории или информацию о файле
    SYST - ответ должен содержать тип ОС сервера и др. полезную информацию
    STAT - ответ содержать информацию о текущем состоянии сервера; если команда выдана в процессе передачи файла и предварена посылкой сигналов telnet-а IP и Synch, то ответ д. содержать информацию о состоянии пересылки
    STAT имя файла - ответ должен содержать информацию о файле

    прочее
    HELP [имя команды] - описание работы данной команды
    NOOP - пустая команда

    Некоторые типы данных:

    ASCII (TYPE A ) - передача текстовой информации

    IMAGE (TYPE I ) - передача бинарных файлов

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

    Первая цифра:
    1yz - предварительный положительный ответ: команда принята, но не завершена
    2yz - действие успешно завершено
    3yz - команда принята, сервер ждет дополнительную информацию
    4yz - временная неудача, повторить через некоторое время
    5yz - фатальная ошибка

    Вторая цифра:
    x0z - синтаксис
    x1z - ответ на запрос информации
    x2z - ответ относится к состоянию управляющего соединения или соединения данных
    x3z - аутентификация и учет
    x4z - смысл не определен
    x5z - состояние файловой системы сервера

    Некоторые коды возврата

    120 Функция будет реализована через nnn минут

    125 Канал открыт, обмен данными начат

    150 Статус файла правилен, подготавливается открытие канала

    200 Команда корректна

    211 Системный статус или отклик на справочный запрос

    212 Состояние каталога

    213 Состояние файла

    220 Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры

    221 Благополучное завершение по команде quit

    225 Канал сформирован, но информационный обмен отсутствует

    226 Закрытие канала, обмен завершен успешно

    230 Пользователь идентифицирован, продолжайте

    250 Запрос прошел успешно

    331 Имя пользователя корректно, нужен пароль

    332 Для входа в систему необходима аутентификация

    421 Процедура не возможна, канал закрывается

    425 Открытие информационного канала не возможно

    426 Канал закрыт, обмен прерван

    450 Запрошенная функция не реализована, файл не доступен, например, занят

    451 Локальная ошибка, операция прервана

    452 Ошибка при записи файла (не достаточно места)

    500 Синтаксическая ошибка, команда не может быть интерпретирована (возможно, она слишком длинна)

    501 Синтаксическая ошибка (неверный параметр или аргумент)

    502 Команда не используется (нелегальный тип MODE)

    503 Неудачная последовательность команд

    504 Команда не применима для такого параметра

    530 Система не загружена (not logged in)

    532 Необходима аутентификация для запоминания файла

    550 Запрошенная функция не реализована, файл не доступен, например, не найден

    552 Запрошенная операция прервана, недостаточно выделено памяти

    Соединение к FTP с помощью Telnet

    Подсоединимся к командному порту FTP (21):

    Протокол TFTP

    TFTP - тоже протокол FTP, но поверх протокола UDP (т.е. протокол без гарантированной доставки). Может использоваться в локальной сети, где скорость передачи важнее. На практике используется редко.

    Программы клиенты

    FTP - программа запускается с командной строки.

    Windows Comander - может работать как FTP-клиент. Позволяет работать с удаленными каталогами также как с локальными.

    NetVampire - Специализированный FTP-клиент, который позволяет качать большие файлы и качать по плохим каналам.

    text-align: center; src=p соединения

    Служба WWW (World Wide Web) - предназначена для обмена гипертекстовой информацией.

    Проект был предложен в 1989 году. В 1993 появился первый браузер.

    WWW построена по схеме "клиент-сервер".

    Браузер (Internet Explorer, Opera . ) является мультипротокольным клиентом и интерпретатором HTML. И как типичный интерпретатор, клиент в зависимости от команд (тегов) выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных в текст графических образов.

    В начале служба WWW базировалась на трех стандартах:

    HTML (HyperText Markup Lan-guage) - язык гипертекстовой разметки документов ;

    URL (Universal Resource Locator) - универсальный способ адресации ресурсов в сети ;

    Hypertext Transfer Protocol - протокол передачи гипертекста, протокол высокого уровня (а именно, уровня приложений).
    . Используется службой WWW для передачи Web-страниц.

    Дальше идет содержимое файла (тело запроса).

    Заголовок запроса состоит из главной (первой) строки запроса и последующих строк, уточняющих запрос в главной строке. Последующие строки также могут отсутствовать.

    Запрос в главной строке состоит из трех частей, разделенных пробелами:

    GET - Метод GET служит для получения любой информации, в соответствии URI-запроса.

    HEAD - запрос заголовка документа. Отличается от GET тем, что выдается только заголовок запроса с информацией о документе. Сам документ не выдается.

    POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные следуют в последующих строках запроса в виде параметров.

    PUT - поместить документ на сервере. Запрос с этим методом имеет тело, в котором передается сам документ.


    DELETE - используется для удаления ресурсов, идентифицированных с помощью URI-запроса

    2) Ресурс - это путь к определенному файлу на сервере (называется URI), который клиент хочет получить (или разместить - для метода PUT). Если ресурс - просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере.

    Строки после главной строки запроса имеют следующий формат:

    Таким образом, задаются параметры запроса. Это является необязательным, все строки после главной строки запроса могут отсутствовать; в этом случае сервер принимает их значение по умолчанию или по результатам предыдущего запроса (при работе в режиме Keep-Alive).

    Connection (соединение) - может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close.
    close ("закрыть") - соединение закрывается после ответа на данный запрос.

    User-Agent - значением является "кодовое обозначение" браузера, например:

    Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

    Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например:

    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

    Это, очевидно, нужно для случая, когда сервер может выдавать один и тот же документ в разных форматах.

    Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для данного браузера.

    Referer - URL, с которого перешли на этот ресурс.

    Host - имя хоста, с которого запрашивается ресурс. Полезно, если на сервере имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя виртуального сервера определяется по этому полю.

    Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях.

    Формат ответа очень похож на формат запроса: он также имеет заголовок и тело, разделенное пустой строкой.

    Заголовок также состоит из основной строки и строк параметров, но формат основной строки отличается от таковой в заголовке запроса.

    Основная строка запроса состоит из 3-х полей, разделенных пробелами:

    Версия протокола - аналогичен соответствующему параметру запроса.

    Код возврата (ошибки, состояния) - кодовое обозначение "успешности" выполнения запроса.

    Например, код 200 означает "все нормально" (OK).

    Словесное описание ошибки - "расшифровка" предыдущего кода. Например, для 200 это OK, для 500 - Internal Server Error.

    Таблица кодов возврата

    Connection - этот ответ аналогичен соответствующему параметру запроса.

    Если сервер не поддерживает Keep-Alive (есть и такие серверы), то значение Connection в ответе всегда close.

    Content-Type - содержит обозначение типа содержимого ответа в MIME.

    В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия.

    Некоторые типы содержимого:

    text/html - текст в формате HTML (веб-страница);
    text/plain - простой текст (аналогичен "блокнотовскому");
    image/jpeg - картинка в формате JPEG;
    image/gif - то же, в формате GIF;

    Также может передавать кодировку для текстовых данных.

    Content-Length - длина содержимого ответа в байтах (размер файла).

    Last-Modified - дата и время последнего изменения документа.

    Программа TeleportPro.

    Бывают ситуации, когда необходимо работать с информацией с локального диска, например:

    отсутствие доступа в Internet.

    очень медленный канал.

    очень большое количество документов.

    создание резервной копии, вдруг сервер закроется.

    для экономии при оплате канала, при выходе по модему.

    Некоторые возможности программы:

    задание глубины сканирования сайта, и внешних ссылок

    задание типа файлов (расширение) для скачивания, например можно скачать только графику.

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


    Хронология развития FTP

    В 1972 году протокол полностью изменили, он принял вид, близкий к современному. Команды с параметрами от клиента и ответы сервера стали передаваться по TELNET-соединению, для передачи данных создавалось отдельное соединение.

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

    Передача данных и соединение

    Протокол FTP работает в активном и пассивном режимах. От режима зависит способ установки самого соединения. В активном режиме клиентом создается управляющее TCP-соединение с сервером, клиент отправляет серсеру свой IP-адрес и произвольный номер порта, после этого сервер запускает TCP-соединение с соответствующим адресом и портом. В пассивном режиме клиентом используется поток управления для посыла на сервер команды PASV, после которой от сервера получается IP-адрес и номер порта, которые в дальнейшем используются клиентом с целью открытия потока данных с произвольного клиентского порта. И тот, и другой режим были обновлены в 1998 году - для поддержки IPv6.

    При передачи данных по сети может быть использовано 4 режима представления данных:

    • ASCII - применяется для текста. Если есть такая необходимость, данные до передачи конвертируются из символьного представления на хосте-отправителе в "восьмибитный ASCII", и в символьное представление принимающего хоста. Данный режим не подходит для файлов, содержащих что-то кроме обычного текста.
    • Режим изображения (бинарным режим) - устройство-отправитель посылает каждый файл байт за байтом, а получатель сохраняет поток байтов при получении. Поддержка этого режима рекомендована для всех реализаций FTP
    • EBCDIC - режим, который используется для передачи обычного текста между хостами в кодировке EBCDIC. Данный режим аналогичен ASCII.
    • Локальный режим - режим, позволяющий двум компьютерам с идентичными установками посылать данные в собственном формате, минуя конвертацию в ASCII.

    Текстовые файлы имеют различные форматы управления и настройки структуры записи. Это было разработано для работы с файлами, содержащими Telnet или ASA-форматирование.

    Передача данных может осуществляться в любом из трех режимов:

    • Поточный режим. В нем данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой-либо обработки. Вместо этого, вся обработка выполняется TCP. Индикатор конца файла не нужен, за исключением разделения данных на записи.
    • Блочный режим. В нем данные разбиваются на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаются TCP.
    • Режим сжатия. В данном режиме данные сжимаются единым алгоритмом.

    Аутентификация

    FTP-аутентификация, как правило, применяет обычную схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу в виде команды USER, а пароль - в виде команды PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начнется сессия. Также, пользователи могут, если сервер позволяет, войти в систему без предоставления учетных данных, но сервером предоставляется лишь ограниченный доступ для таких сессий.

    Анонимный FTP

    NAT-PT

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

    Веб-браузеры и FTP

    Синтаксис

    Синтаксис FTP URL описан в RFC1738, в форме: ftp://[[:]@][:]/(параметры в квадратных скобках необязательны).

    Более детальная информация об указании имени пользователя и пароля отражена в документации браузеров. По умолчанию, большинство веб-браузеров используют пассивный (PASV) режим.

    Безопасность

    FTP имеет много уязвимых мест в защите, поскольку не разрабатывался как защищенный протокол.

    В мае 1999 был составлен так называемый список проблем:

    • Скрытые атаки;
    • Спуф-атаки;
    • Атаки методом грубой силы;
    • Перехват пакетов, сниффинг;
    • Защита имени пользователя;
    • Захват портов.

    FTP не имеет возможности шифровать свой трафик, все передачи - это открытый текст: имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Эта проблема характерна для многих спецификаций интернет-протокола (в их числе SMTP, Telnet, POP, IMAP), разработанных до создания таких механизмов шифрования, как TLS и SSL. Классическое решение такой проблемы - использование "безопасных", TLS-защищенных версий уязвимых протоколов (FTPS для FTP, TelnetS для Telnet и т.д.) или же другой, более защищенный протокол, вроде SFTP/SCP.

    FTPS

    FTPS - это расширение стандарта FTP, позволяющее клиентам требовать, чтобы FTP-сессия была зашифрована. Реализация производится посредством отправки команды "AUTH TLS". Сервер может позволить или отклонить соединения, которые не запрашивают TLS. Это расширение протокола определено в спецификации RFC 4217.

    Основные команды

    ООО "Альтербит", 197183, Санкт-Петербург, Комендантский проспект, 2 схема проезда
    Телефон: (812) 309-2602 ← Звони если хочешь купить сервер, схд, компьютер

    Читайте также: