If you aren't already familiar with FTP connections, it can be confusing to understand how they work. At the most basic level, FTP is a transfer protocol that allows a direct connection between a local host (the machine you are using) and a remote host (the machine you are connecting to).
We'll break down what this means in more detail and how the two relate to form FTP connections for file transfers.
How FTP works
FTP is a transfer protocol that connects a local and remote host together. In general, the local host connects using an FTP client, and the remote host is an FTP server. FTP works by using the FTP protocol to connect the local and remote hosts.
What is a "protocol"?
A protocol is the set of rules and requirements to establish a connection between two machines.
Think of it as a language. Every language has a unique set of rules, structures, and words that work together to form the language as a whole. Breaking these rules would mean other speakers wouldn't be able to understand the message, which is the same concept for transferring files. It's possible for people speaking different languages to communicate, but not directly; a translator needs to understand both languages and pass messages between people.
The same goes for file transfers. When machines use the same protocol, it's easy for them to communicate. And when they aren't, communicating and sending data between them can be challenging.
The reason why managed file transfer platforms like Couchdrop are so powerful is because of their versatility. The platforms act as a central hub, and files can come into the platform using any protocol, then be sent elsewhere using any other protocol without losing any data.
We cover more about protocols and the differences between them in more depth at FTP vs SFTP vs SCP vs Rsync.
What is a server?
A server is a computer that provides or "serves" data to other computers requesting it. Typically, these computers are used for a very specific purpose, such as for serving web pages when someone types in a URL.
In the context of FTP, an FTP server enables the transfer of files between the local and remote host using the FTP protocol, with the files often being stored on the server itself.
What is a client?
A client is a piece of software that requests a particular service. Using the same example of websites as above, a web client requests to see pages on a web server, then the server checks that the connection and request is valid and displays the pages.
For FTP connections, an FTP client is software that has all the required components to connect to a server using the FTP protocol.
Why are FTP servers and FTP clients required?
If the main purpose of FTP is to have access to files on other devices, at first glance, if your use case is to send files to someone else, it might seem like it would be easier to transfer the files to them directly instead of using the server as an intermediary. And in simple transactions like these, in many cases, this is certainly possible. However, there are a few reasons why these direct connections aren't the standard.
Scalability
One major problem with direct connections is scale. FTP servers often serve as a repository or hub. Since the server has this very specific purpose, it's not uncommon for multiple different computers to connect to it. For instance, an FTP server could have shared project files stored on it, and each member of the group could connect to access those group files, download them, or upload new ones to share with other members.
Some servers have literally hundreds or even thousands of users. Every user connects to the FTP server for sending and receiving files and can access them as needed, something that wouldn't be possible without this centralization.
Security
Another issue is security. Without using a server, the parties would be directly connecting their computers together, which is a huge risk, especially when you don't know the other party well (or at all).
Even with complete trust in the other party, there's always the potential that they aren't the only ones involved (or even the right person connecting). These connections could potentially leave your machine open to browse freely or worse, and is one reason why using a server works as a safeguard.
Service availability
Finally, there is availability. Unlike home or work computers, servers aren't normally turned off and on between uses. If they were, anyone trying to connect while the server is off wouldn't be able to do so.
This is why "server downtime" is such a big deal, as the service is shut down completely when the server running it has to be taken offline for updates, patches, or repairs. When any of these issues can't be resolved quickly, users relying on the services simply can't use them during the downtime.
It's also a reason why platforms using a modern cloud architecture like Couchdrop have a much higher availability. Because the services aren't isolated to specific machines like with traditional architecture, they don't require downtime at all, even while updates and patches are happening, so there's never a requirement to have a server go down for maintenance.
How FTP connections work
At a high level, FTP connections work by opening up two channels between the FTP server and the FTP client. The command channel is used for sending commands like "show me this folder", "download this file" etc and the data channel is used for the transfer of data.
To start the connection, the FTP client requests to connect to the server. In most cases, a username and password will be required so only authorized users can connect. Then, the FTP server listens to commands from the client using the command channel, and any data uploaded or downloaded is done with the data channel.
When it was first created, FTP was revolutionary because files could be transferred between machines that weren't at or even near the same physical location. But over time, advancements in computing and data transfers have led to many issues with FTP, and it's no longer recommended to use unless there are no other alternatives.
FTP security concerns
The main drawback with FTP connections and the reason experts advise against using FTP is because FTP connections aren't encrypted by default. This means that external parties can snoop on the connection, see what files are being transferred, and so on. Even passwords are sent in plain text instead of in hashed form. In the worst-case scenarios, connections can become hijacked and the outsider can gain access to the files themselves.
So why is FTP still used at all?
Mostly for compatibility. Remember that protocols are like languages, and since FTP was established over 50 years ago and was at one point the standard for transferring files using the client-server model, there are a lot of computers out there that only "speak" FTP. It's estimated that there are over 20 million FTP servers still online, some of which involve critical processes that can't simply be switched off or removed.
Because of the widespread use, adding security parameters to FTP is recommended when using a different, more secure protocol, such as SFTP or AS2, isn't possible. This is most commonly done using "FTP over TLS" or FTPs (FTP secure), which is the same FTP protocol with added safeguards.
Modern advancements to the FTP server FTP client relationship
FTP clients and FTP servers are still used all around the world, but advancements in speed, reliability, and security are changing the dynamic. Traditionally, downloading an FTP client was simple, but setting up the FTP server itself was time-consuming, costly, and challenging. Someone would also need the physical hardware and make sure the server was running at all times.
Virtual machines simplified the setup dramatically by not requiring hardware, and "serverless" cloud FTP servers have taken this advancement even further by handling the setup, configuration, and management automatically while also adding redundancy and security safeguards.
Couchdrop is one of these platforms that works as a modern upgrade to traditional FTP servers. While most FTP servers require their own storage--and Couchdrop includes hosted storage in all plans as well--one of the major advantages is that the storage can be in a cloud storage platform like Google Drive or SharePoint.
This means that when connecting with FTP, users are actually connecting directly to a folder in the cloud storage platform and can upload/download files using FTP, something not possible natively with most storage platforms. They also don't need to be added as a user in the storage platform and be restricted with granular access controls.
To try a fully-hosted FTP server and see the difference, start your 14-day Couchdrop trial now.