FTP (File Transfer Protocol) is the generic term for a group of computer programs aimed at facilitating the transfer of files or data from one computer to another. It originated in the Massachusetts Institute of Technology (MIT) in the early 1970s when mainframes, dumb terminals and time-sharing were the standard.

Traditionally, when communications speeds were low (ranging from the then-standard 9.8 kbps to the "fast" 16.8 Kbps unlike today's broadband 1 Mbps standard) FTP was the method of choice for downloading large files from various websites. Although the FTP programs have been improved and updated over time, the basic concepts and definitions remain the same and are still in use today.

FTP Concepts and Definitions

The key definition to remember is the term "protocol," which means a set of rules or standards that govern the interactions between computers. It is a key component in many terms that are now taken for granted: Transmission Control Protocol / Internet Protocol or TCP/IP, the governing standards for Internet communications; Hyper Text Transfer Protocol or HTTP, which established the benchmarks for Internet addresses and communications between two computers in the internet; and File Transfer Protocol (FTP) which, as has been said, sets the rules for transferring files between computers.

The primary objective in the formulation of File Transfer Protocols was to make file transfers uncomplicated and to relieve the user of the burden of learning the details on how the transfer is actually accomplished. The result of all these standards and rules can be seen in today's web interactions, where pointing-and-clicking (with a mouse) initiates a series of actions that the typical Internet user does not see or even remotely understand.

Differences between FTP and HTTP

The major difference between FTP and HTTP is that FTP is a two-way system – it can be used to copy or move files from a server to a client computer as well as upload or transfer files from a client to a server. HTTP, on the other hand, is strictly one-way: "transferring" text, pictures and other data (formulated into a web page) from the "server" to a client computer which uses a web browser to view the data.

Another point to bear in mind is that File Transfer in FTP means exactly that: files are automatically copied or moved from a file server to a client computer's hard drive, and vice versa. On the other hand, files in an HTTP transfer are viewed and can 'disappear' when the browser is turned off unless the user executes commands to move the data to the computer's memory.

Another major difference between the two systems lies in the manner in which the data is encoded and transmitted. FTP systems generally encode and transmit their data in binary sets which allow for faster data transfer; HTTP systems encode their data in MIME format which is larger and more complex. Note that when attaching files to emails, the size of the file is usually larger than the original because of the additional encoding involved.