FTP расшифровывается как File Transfer Protocol — протокол передачи данных. С его помощью можно подключаться к другим компьютерам, чтобы загружать и скачивать файлы, а также управлять ими: устанавливать права доступа, создавать и редактировать текстовые документы, добавлять новые папки.

В статье разбираемся, как устроена эта технология, как ей пользоваться и зачем она нужна, если всё то же самое можно делать по HTTP.

Содержание

  1. Для чего нужен FTP
  2. Сравнение FTP и HTTP
  3. FTP-сервер и FTP-клиент
  4. Принцип работы FTP

Зачем нужен FTP

FTP-протокол появился задолго до HTTP — когда интернет только зарождался и в нём ещё не было удобного способа передавать файлы между компьютерами. Это одна из самых старых технологий в мире компьютерных сетей.

С появлением HTTP причин использовать FTP почти не осталось. HTTP умеет всё то же самое, плюс по этому протоколу работают сайты. Нет смысла использовать два протокола, если можно использовать один.

Сейчас протокол FTP используется в основном для загрузки и удалённого управления файлами на хостинге. И то провайдеры как правило предоставляют также и HTTP-вариант для этого — панель управления.

Преимущество FTP перед панелями управления в том, что при работе по этому протоколу всё всегда выглядит одинаково, к какому бы серверу вы ни подключились. Это можно сделать в командной строке, специальной бесплатной программе или даже в стандартном менеджере файлов вашей ОС. 

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

Плюс панель управления дают бесплатно обычно только на виртуальном хостинге. На VPS и выделенном сервере за неё нужно доплачивать. В принципе есть и бесплатные варианты, но они часто немного кривые.

Чем FTP отличается от HTTP

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

  • Модель соединения. При работе по HTTP-протоколу между клиентом и сервером устанавливается одиночное соединение, а при работе по FTP — множественное: одно соединение «управляющее» (для передачи команд), а другое «информационное» (для передачи данных). При этом для передачи каждого файла устанавливается новое информационное соединение.
  • Необходимость аутентификации. Чтобы подключиться к FTP-серверу, нужен логин и пароль. Их создаёт администратор сервера. А если доступ к серверу должен быть у всех желающих, есть анонимный режим, в котором логином будет слово «anonymous», а паролем — адрес электронной почты. Для подключения к серверу по HTTP логин и пароль не нужны.
  • Использование сессий. При подключении к серверу по FTP создаётся сессия и все запросы к серверу отправляются в рамках неё. При использовании HTTP сессии не создаются, клиент просто отправляет запросы серверу.
  • Использование портов. При работе по HTTP всегда используются только порты 80 и 443, а при работе по FTP — несколько случайных портов из диапазона 1024–65535. Подробнее о том, как именно они назначаются, расскажем дальше в статье.
  • Возобновление загрузки. FTP умеет возобновлять загрузку. Если соединение было разорвано, вы не потеряете прогресс. При работе по HTTP скачивание придётся начинать заново.
  • Безопасность. Оба протокола передают данные в открытом виде. Чтобы их не могли перехватить и прочитать злоумышленники, стоит использовать зашифрованные аналоги протоколов: HTTPs вместо HTTP и FTPs вместо FTP.
  • Скорость скачивания. При прочих равных и HTTP и FTP передают данные примерно одинаково быстро. Разница, если и будет, то небольшая.

Это только самые основные моменты. Если интересно, вот более подробный анализ различий между двумя протоколами:

Сравнение FTP и HTTP

Что такое FTP-сервер и FTP-клиент

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

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

А ещё при помощи такой программы можно сделать хранилище для медиафайлов из старого компьютера. Настраиваете программу, оставляете компьютер включённым и уезжаете в отпуск. Днём снимаете фото и видео, вечером подключаетесь к компьютеру по FTP из отеля, скидываете файлы, а на телефоне удаляете, чтобы не тратить место.

Популярные FTP-серверы:

FTP-клиент — это программа для подключения к FTP-серверу и удалённой работы с файлами. Это может быть специальное приложение конкретно для работы по FTP, командная строка и даже стандартный файловый менеджер Windows/Linux. Вот инструкция для каждого из вариантов:

Как подключиться к серверу по FTP

Популярные FTP-клиенты:

Как работает FTP

Как вы уже знаете из предыдущих разделов, для работы по FTP клиент и сервер устанавливают друг с другом два соединения: сначала управляющее (для передачи команд), затем информационное (для передачи данных). Для каждого соединения используются случайные порты из диапазона 1024–65535.

Что это: ФТП сервер и ФТП клиент

Использование случайных портов усложняет работу по FTP, потому что входящие соединения к подобным портам по соображениям безопасности часто блокируют файрволы. Чтобы избежать подобных проблем, есть два режима работы FTP: активный и пассивный. 

Активный режим FTP устроен так, что сначала клиент обращается к серверу, чтобы установить управляющее соединение, а потом уже сервер обращается к клиенту, чтобы установить информационное соединение.

Если отбросить технические детали, процесс подключения выглядит так:

  1. Клиент подключается со случайного порта к 21 порту сервера, отправляет команду PORT и номер порта, к которому должен подключиться сервер.
  2. Сервер подключается с порта 20 на указанный клиентом порт и устанавливает информационное соединение. Затем по этим портам передаются файлы.

В таком режиме работы FTP, если на компьютере пользователя стоит файрвол, он может заблокировать попытку сервера подключиться к нетипичному порту. Без файрвола всё будет работать без проблем.

Что такое ФТП — Активный режим работы протокола

Пассивный режим FTP отличается от активного тем, что оба соединения инициирует клиент. Это решает проблему с файрволом, поскольку соединения, которые устанавливает клиент, не блокируются. 

В упрощённом виде процесс подключения выглядит так:

  1. Клиент подключается со случайного порта к 21 порту сервера и отправляет команду PASV. Сервер отвечает и указывает номер порта, к которому должен подключиться клиент.
  2. Клиент подключается со случайного порта к порту, который указал сервер и устанавливает информационное соединение. После этого по этим портам передаются файлы.
Что такое ФТП — Пассивный режим работы протокола

Что дальше

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

Как работать с файлами в FileZilla