FTP розшифровується як File Transfer Protocol — протокол передачі даних. З його допомогою можна підключатися до інших комп’ютерів, щоб скачувати та завантажувати файли, а також керувати ними: встановлювати права доступу, створювати та редагувати текстові документи, додавати нові папки.
У статті розбираємося, як влаштована ця технологія, як нею користуватися і навіщо вона потрібна, якщо все те ж саме можна робити за допомогою HTTP.
Зміст
Навіщо потрібен 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-сервер та FTP-клієнт
FTP-сервер — це програма, яка приймає та обробляє вхідні запити за протоколом FTP. Її налаштовують на комп’ютері, до якого повинні підключатися.
На хостингу FTP-сервер встановлено за замовчуванням, інформацію для підключення до нього зазвичай надсилають у листі про активацію хостингу.
А ще за допомогою такої програми можна створити сховище для медіафайлів зі старого комп’ютера. Налаштовуєте програму, залишаєте комп’ютер увімкненим і їдете у відпустку. Вдень знімаєте фото та відео, увечері підключаєтеся до комп’ютера FTP з готелю, скидаєте файли, а на телефоні видаляєте, щоб не витрачати місце.
Популярні FTP-сервери:
- FileZilla Server (Windows, Mac, Linux)
- Xlight FTP Server (Windows)
- CompleteFTP (Windows)
- Core FTP Server (Windows)
- ProFTPD (Linux)
FTP-клієнт — це програма для підключення до FTP-сервера та віддаленої роботи з файлами. Це може бути спеціальний додаток для роботи по FTP, командний рядок і навіть стандартний файловий менеджер Windows/Linux. Ось інструкція для кожного з варіантів:
Як підключитися до сервера за протоколом FTP
Популярні FTP-клієнти:
- FileZilla (Windows, Mac, Linux)
- Cyberduck (Windows, Mac)
- WinSCP (Windows)
- Documents by Readdle (Mac, iOS)
- X-plore File Manager (Android)
Як працює FTP
Як ви вже знаєте з попередніх розділів, для роботи за протоколом FTP клієнт та сервер встановлюють один з одним два з’єднання: спочатку керуюче (для передачі команд), потім інформаційне (для передачі даних). Для кожного з’єднання використовуються випадкові порти з діапазону 1024-65535.
Використання випадкових портів ускладнює роботу з FTP, тому що вхідні з’єднання до подібних портів з міркувань безпеки часто блокують файрволи. Щоб уникнути подібних проблем, є два режими роботи FTP: активний та пасивний.
Активний режим FTP влаштований так, що спочатку клієнт звертається до сервера, щоб встановити з’єднання, а потім вже сервер звертається до клієнта, щоб встановити інформаційне з’єднання.
Якщо відкинути технічні деталі, процес підключення виглядає так:
- Клієнт підключається з випадкового порту до порту 21 сервера, відправляє команду PORT і номер порту, до якого повинен підключитися сервер.
- Сервер підключається з порту 20 до вказаного клієнтом порту і встановлює інформаційне з’єднання. Потім по цих портах передаються файли.
У такому режимі роботи FTP, якщо на комп’ютері користувача стоїть файрвол, він може заблокувати спробу сервера підключитися до нетиповому порту. Без файрвола все працюватиме без проблем.
Пасивний режим FTP відрізняється від активного тим, що обидва з’єднання ініціює клієнт. Це вирішує проблему з файрволом, оскільки з’єднання, які встановлює клієнт, не блокуються.
У спрощеному вигляді процес підключення виглядає так:
- Клієнт підключається з випадкового порту до порту 21 сервера і відправляє команду PASV. Сервер відповідає та вказує номер порту, до якого повинен підключитися клієнт.
- Клієнт підключається з випадкового порту до порту, який вказав сервер і встановлює інформаційне з’єднання. Після цього цими портами передаються файли.
Що далі
Наступного разу, коли потрібно завантажити або відредагувати файли на хостингу, спробуйте зробити це за протоколом FTP. Розібратися в цьому допоможе наша інструкція з використання найпопулярнішого FTP-клієнта:
Як працювати з файлами у FileZilla