Non-technical Internet users may at times hear techies and industry pundits refer to a "protocol" without explaining its meaning. To put it simply, in the world of computer networking (which includes the Internet), a protocol is a set of rules that specify the format of messages exchanged between computers. One might think of it as a network "language", similar in many respects to natural languages (e.g., American English) and computer languages (e.g., PHP).
Web users witness one particular protocol in use every time they visit a website, whose address (known as a "URL") is something like "http://www.example.com/". The "http" stands for Hypertext Transfer Protocol, which is a TCP/IP client-server protocol used on the Web for transmitting resources from a Web server to a client. I won't go into the details of that, but it is sufficient to understand that HTTP is the protocol used when your Web browser receives a copy of an image file to be displayed on the current Web page. A variation of "http" in URLs is "https", which indicates that a secure HTTP connection has been established between your browser and the website that you are using — typically when entering sensitive information, such as a credit card number.
There are other Internet protocols, however, including one that you may have heard of but perhaps have never used: File Transfer Protocol (FTP). This one is primarily used by people building and maintaining websites, such as designers, developers, and content administrators. The main difference is that with HTTP, you, the client, are connecting to a Web server, which is capable of a number of functions, such as running Web scripts, assembling separate files into one complete Web page, etc. With FTP, you are connecting to a file server, and thus the technology involved can focus on the uploading and downloading the files as efficiently as possible, and thus can be done much faster versus HTTP.
FTP might, at first glance, appear to be arcane and intimidating, but that is usually just a case of unfamiliarity with the concept and with applications that make it much easier to work with than the techie lingo might imply. In this article, I will examine one of the most popular and well-regarded programs that will make it possible for you to FTP files back and forth between your local computer and a remote file server, such as one provided to you by a Web hosting company. (Note the use of "FTP" as a verb — just one more example of our favorite human language being made more efficient.)
The Godzilla of FTP
FileZilla is an FTP application — often referred to as an FTP "client". It is certainly not the only one available, but is arguably one of the best — and not just based on its price (free). It is open-source software, which means that you can download and peruse the source code that makes it all possible, and see how it works.
Like most worthy open-source applications, FileZilla runs on all the major operating systems (Windows, Mac OS X, Linux, and BSD). It supports FTP, FTPS (SSL/TLS), SSH File Transfer Protocol (SFTP), and IPv6. It offers translations for almost four dozen human languages. It has a comprehensible graphical user interface (GUI), including bookmarks, filename filtering, drag-and-drop capabilities, and a file transfer queue that displays all of the files currently downloading as well as those scheduled to do so. FileZilla has a handy site manager that stores all of the access information for any site to which you have connected. You can transfer files larger than four gigabytes, and if any transfer is interrupted, it can be resumed later, without having to start over.
For those readers interested in some of the technical details, note that FileZilla supports ASCII, binary, and PASV modes. You can perform a number of actions on the remote server, including creating directories and setting file permissions (i.e., chmod support). If the system time on the remote server differs from that of your local machine, you can set a time offset so that when you next connect to that server, the timestamps on its files will be synced up with your own time zone. Lastly, FileZilla can be run from a non-boot partition, which is helpful if you have multiple boot partitions and want to avoid installing it on each one.
Transfer Me Up, Scotty!
The best way to experience the capabilities and value of FileZilla, is by installing it and trying it out. Simply click on the "Download FileZilla Client" button on their home page (be sure not to confuse that with the "Server" version). On the client download page, click the link that corresponds to your operating system. Windows users can choose from either the executable installer or an archive file; the former would be easier for those unfamiliar with installing applications from Zip files.
The installation process is quite straightforward, with each dialog explaining what choices are available to the user. Hence, detailed instructions and screenshots of each dialog will not be shown here. But here are some pointers to keep in mind: On the "Choose Components" dialog, if you are certain that you will only be needing the English interface, then you can save space on your hard drive by deselecting the "Language files" checkbox. On that same screen, you can deselect "Shell Extension" if you have no interest in dragging files back and forth between FileZilla and Windows Explorer. On the "Choose Install Location", if you had uninstalled an earlier version of FileZilla, then the site manager settings file (FileZilla.xml) might still be located in that old directory, so you could specify that directory to avoid having to copy that file into a new location or, far less efficiently, re-creating all the site manager settings.
When you run FileZilla for the first time, it will display the welcome dialog, which has links to documentation and other helpful information on the Web.
The main window has six panels. In the top panel, one will see any messages from the remote server, such as login results. The file transfer queue is in the bottom panel. In between, the main part of the screen is divided vertically in half, with the left half representing your local computer, and the right half for the remote server. Each of these areas contains a directory tree in the top part, and a file list (for the selected directory) in the bottom part.
Choose the menu item File > Site Manager, or just press Ctrl + S, to open up the site manager dialog.
The site manager dialog has a section on the left listing all of the servers you may want to log into ("Predefined Sites") and any that you have logged into in the past ("My Sites"). To see the details of any one of them, just click on the server name, and then in the right-hand portion of the dialog you can use the four tabs to change the site's settings. Most of the default settings do not need to be changed, except for the host name (or an IP address), the username and password (change the login type from Anonymous to Normal), the default local directory (typically where you are saving that site's files on your PC), the default remote directory (usually "/public_html"), and the server time zone offset mentioned earlier.
You can also connect to a server using the Quickconnect bar (located just below the menu and tool bars), which is ideal for one-off connections that you are certain you won't need in the future.
One problem with managing large numbers of files on local and remote file servers, is that when you have more than a few dozen files in any particular directory, you will have to do a lot of scrolling, which wastes time and can become frustrating. Fortunately, FileZilla allows you to filter out the display of files in which you have no interest. To access the filename filters dialog, go to View > "Filename filters".
The program settings dialog (Edit > Settings) allows you to change the default configuration that is applied to site connections, unless overridden on a per-connection basis. You can set limits to the number and speed of files transferred, customize the FileZilla interface, specify an external editor, set file type associations, and enable logging and debugging.
If your business or personal projects involve any sort of uploading or downloading of files to remote file servers — even if they are not related to websites — then take a look at FileZilla, which can stomp on any FTP hurdles that my get in your way.