What is FTP (File Transfer Protocol)?
Table of Contents
Read the following guide to find out what FTP means, how it works, and what it’s used for.
What is FTP used for?
FTP enables a computer to access and download or manage files and folders on a remote web server over a stable internet connection.
Once the connection is established, the authorized users can perform the following operations:
- Upload files from the user’s computer to the FTP server
- Download files from the FTP server to the user’s computer
- Delete files on the FTP server
- Change file permissions on the FTP server
This makes FTP useful for various online tasks performed by individuals or online services.
Backup creation
Through FTP, users or automated services can download copies of files from one server and store them on another server designated for backup storage.
File sharing and storage
An FTP server can act as an online storage where files can be accessed and downloaded by multiple users. Access can be public for any visitor or granted after users provide login credentials.
Data exchange between organizations and businesses
By setting up an FTP server, businesses can establish a reliable and stable channel through which they can share files with trusted individuals or organizations.
Automated operations
Many scripts and applications can utilize FTP to perform scheduled operations such as downloading, uploading, or deleting files at a specified time. This relieves webmasters from mundane daily duties and allows them to focus on tasks requiring more creativity and skill.
How does FTP work?
File Transfer Protocol (FTP) is a network protocol for transferring files between computers on a TCP/IP network (Internet).
The FTP connection is established between two parties – the end-user’s computer requesting access (also known as the local host, FTP user, or FTP client) and the computer storing the files (known as the remote host, FTP server, or FTP host).
In general, there are three distinct methods for accessing files via FTP:
- Command-line interface – users can manipulate files by executing commands directly in a command-line interface such as Command Prompt for Microsoft Windows or Terminal for macOS.
- Web browsers – you can access and download files from web browsers as well, although this method is less stable and slower.
- FTP client – is an FTP-dedicated program with an interface designed specifically for managing files over FTP. This type of application is much more stable and faster than a web browser and has exclusive features that a web browser lacks. Such programs are FileZilla, Transmit and Cyberduck.
On the other hand, the remote FTP server must have the required software to support FTP service.
FTP sessions are executed on two communication channels – a command channel and a data channel.
The command channel is used to control the communication between computers and execute FTP commands.
The data channel transmits the data between the participating devices.
In terms of how the two channels are handled, there are two modes.
Active mode
In active mode, both the FTP client and FTP host participate in handling the communication channels. The FTP client opens a command channel initiating the connection to the FTP host. After the connection has been accepted, the FTP server responds by opening a data channel for the file transfer tracing back to the FTP user.
In this mode, the FTP user’s firewall might perceive the data channel as a malicious external attack and block the connection.
![FTP Active mode](png/active-mode-ftp.png)
Passive mode
In this mode, the FTP user creates and handles both communication channels. The FTP server simply listens for incoming connections and responds when it detects a request.
The FTP user creates the command channel initiating the connection. The FTP server responds by sending back instructions to the user on the same channel. These instructions are processed by the user, who creates the data channel to the server where the data is transmitted.
In passive mode, the firewall is not triggered since both channels originate from the user’s end.
![FTP Passive mode](png/ftp-passive-mode.png)
Types of FTP connections
There are several different types of FTP connections depending on the implemented encryption and protection.
Anonymous FTP
Anonymous FTP is the most basic form of FTP connection. It is not encrypted, and users are not required to provide login credentials. In most cases, it is used for publicly available files that everyone can download. The service works on port 21.
Password-protected FTP
Also a basic unencrypted connection, but the FTP server requires a username and password to grant users access. Like anonymous FTP, it works on port 21.
FTP Secure (FTPS)
Also known as FTP-SSL, this is an extension of the standard FTP, that upgrades the connection with the implicit use of Transport Layer Security (TLS) or Secure Socket Layer (SSL). The client is immediately expected to challenge the server with a TLS message. This is a strict form of FTP since the FTPS server will reject the connection if it doesn’t receive the TLS message from the client.
This connection’s default port is 990. In recent years, it has been replaced with the FTPES (FTP over Explicit SSL/TLS), which is more flexible.
FTP over Explicit SSL/TLS (FTPES)
FTPES (FTP over Explicit SSL/TLS) is a variation of the FTPS connection where TLS encrypts the standard FTP connection. The FTP client must explicitly request a secure connection from the server. Afterward, both sides enter a mutually agreed encrypted communication.
The difference between FTPS and FTPES is that the FTPES server may still accept the client’s request even if the TLS challenge was not received. In this case, the client will connect in an insecure unencrypted mode.
The default port for FTPES is the standard FTP port 21.
SFTP
SFTP (SSH File Transfer Protocol or Secure File Transfer Protocol) is not an FTP protocol. Rather, it is an extension of the Secure Shell Protocol (SSH) for transferring, accessing and managing files.
It is the preferred method of file distribution amongst server administrators and web developers due to the cryptographic protection it uses as a subset of the SSH protocol. SFTP uses the SSH port, which is 22 by default. However, it should be noted that many servers use a custom port for security reasons. SiteGround utilizes a custom SSH port to enhance server security – 18765.
What is an FTP Client?
An FTP client is software that connects your device to an FTP server. It has a graphical user interface which makes the FTP configuration and file management easier and more intuitive. Some FTP clients may include advanced and exclusive features for FTP management, such as resuming or synchronizing large file downloads.
Below you can see a screenshot of a standard FTP client.
![What is an FTP Client](png/what-is-an-ftp-client.png)
The left side lists your local computer’s files, and the right side lists the remote FTP server’s files. Using this interface, you can easily select, download, upload, or delete files from both storages.
FileZilla
FileZilla was developed by Mozilla and is one of the most popular FTP clients, used by millions. You can establish all types of connections, including plain FTP connection, FTP over Explicit SSL/TLS and SFTP.
The client is available on Windows, Linux and macOS operating systems. For more detailed information, take a look at this FileZilla tutorial.
Transmit
Transmit is another popular FTP client available on macOS. Like FileZilla, you can perform various operations on files over different types of FTP connections.
Read this guide to find out how to connect to your FTP account with Transmit.
Cyberduck
Cyberduck is a highly flexible FTP client and cloud storage browser which supports various technologies like FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure, OneDrive, Google Drive and Dropbox. It is available on Windows and macOS.
For more information, check out this guide on how to connect to FTP with Cyberduck.
How to Create and Manage FTP Accounts?
Before connecting to your website via FTP, you first have to create an FTP user account. The accounts are created and managed on the website’s hosting server, which also acts as an FTP server.
SiteGround users can easily create and manage FTP accounts from Site Tools > Site > FTP Accounts.
What is Multisite SFTP?
Usually, you access your different websites on FTP through separate accounts. This means that you’d need to manage multiple accounts if you own several websites.
However, SiteGround has developed an exclusive feature called Multisite SFTP; a single SFTP account to access the files of all websites included in your SiteGround account.
This is extremely practical if you handle multiple websites since you will be able to manage their files simultaneously. For more information, read this tutorial about Multisite SFTP.
Summary
FTP is a highly useful service that enables computers to exchange files on the Internet. As a website owner, you’ll surely need to turn to it on more than one occasion.
We hope this article helps you figure out how to use FTP in your website’s management.