Let's begin with a quick overview of servers and how they work. First of all, the word server has two meanings, and this can cause confusion. It can refer to a particular computer located at a particular place. It also refers to the software that runs on that computer, that lets it fulfill the functions of a server. Sometimes you might have many physical machines that are linked to appear as a single "server", other times one single machine may appear to be many different servers depending on which type of incoming requests it receives.
Each physical machine has a number of different "ports", and each port can receive requests. Here are some of the more common port numbers:
21 - FTP
23- Telnet
25 - SMTP
79 - Finger
80 - HTTP
110 - POP3
119 - NNTP
Note: If you are using Windows, look for a file called "Services" in your Windows directory (usually C:\Windows) for a more complete list of ports.
One way to think of these ports is like they are different telephone extensions in a large company. Each port connects to a different office, and whether or not you can do what you want to do depends on whether anyone is answering the phone at the other end.
For a machine to function as a Web server, for instance, you need to install a type of software called a Web server (like Apache, the most popular on the Internet), and tell it to "answer" any calls that come in on Port 80. If you want it to accept incoming e-mail and send it on, you need to install SMTP software (like Sendmail), and tell it to watch Port 25. So for all of the functions you might want a server to handle, you need to install the right software, and tell it to watch the right port.
You might think that all you need to do is just install of the right software, and let everyone do what they want to do on the server. It isn't that simple, though, when you take security into account. Each port is potentially a gateway by which an undesirable mischief maker can get into your server and cause trouble. For that reason, any good server admin worries about closing any ports not absolutely needed, and guarding those that are opened against any mischief. For this reason, some Web hosts do not open the FTP port at all! They set up a system to allow users to upload using HTTP instead, since that port is already opened, and using it for uploads is therefore less of a security problem. HTTP uploads are not as flexible as FTP, and you should never settle for this on a Web hosting account that you pay for, but in some of the free ones, and some of the ISP-provided Web accounts that come with your ISP account, you may find this.
If you do have FTP access to your account, it is quite likely that you are the only one who would have such access. To allow other users in via anonymous FTP, the hosting company would need to specifically allow anonymous FTP by configuring their FTP server software that way. And most will not do this for two reasons:
For the reasons I have outlined, simply placing a file in your Web directory and then creating an FTP link to it is very likely to fail. However, note that you can transfer files via HTTP, though it is not quite as efficient as FTP, so the download may take a little longer. But unless you are dealing with very large files, this is not much more than a couple of seconds extra, so it is not a big deal. You can simply link to the file name using a URL: "http://www.domain.com/filename.exe"
If you want to experiment with placing an FTP link on your page, you might want to take advantage of the fact that many companies use FTP servers to provide software to customers. On large downloads, to large numbers of customers, the efficiency of FTP is worth the trouble of setting up dedicated FTP servers. Here are a few to try out.
AOL - ftp.aol.com
Netscape - ftp.netscape.com
Note that you can go to any anonymous FTP site, like either of the above, by entering the address in the address window in your browser as follows:
ftp://ftp.netscape.com
Or, you can get a specific software client for FTP. For more on this, see my article on FTP for PCs.