An abbreviation of File Transfer Protocol, FTP is a network protocol used to transmit files between hosts over the Internet and other TCP-based networks. Using client-server architecture and separate control and data connections between the server and client, the earliest FTP client functions were command-line applications created prior to the development of graphical user interfaces for operating systems, and it is still common practice for FTP client apps to be packaged with Linux, Unix and Windows operating systems.
Typically, FTP users provide authentication by entering a username and password in clear-text, but servers also can be configured to allow anonymous connection. FTP is frequently secured using the Transport Layer Security or Secure Sockets Layer (SSL) cryptographic protocols, which encrypts the username, password and transmitted content. Most web browsers are capable of retrieving content hosted on FTP servers, though they may lack support for FTP extensions like FTPS.
FTP runs in two basic modes, active and passive, which control how the data connection is established between the server and client. Passive mode is generally used when the client resides behind a firewall and cannot accept incoming Transfer Control Protocol (TCP) connections, while in active mode, the client creates the TCP control connection.