Clients And Servers

I suppose most of you are familiar with what servers are. But I expect a sizable number of you are unfamiliar with what is meant by "client" in the world of the World Wide Web, the Internet, and computer networking in general. However, for those of you who are new to all of this, I'll start with a short explanation of what servers are.


In some contexts a server is a computer that responds to requests for information over a network. However, in a stricter sense, a server is a program that runs on a computer and responds to requests. So you can have multiple servers running on a single computer. For example, you can have an Apache web server, a MySQL database server, and a FTP server all on the same computer. More technically, a server is a program that provides a service to other computers, known as clients. (Actually a computer can be both the server and the client. For example, I have a web server installed on this computer and I can access it through a web browser — the client — on this same computer.)


A client is a computer or computer program, depending on the context, that makes use of the services of one or more servers. For example, Mozilla Thunderbird and Microsoft Outlook are email clients. Email clients talk with POP3 and/or IMAP servers to ask if there are any new messages to display. They also can send email messages via SMTP servers. Another example is a web browser. Web browsers often support many protocols, which most commonly include HTTP, HTTPS, and FTP. (A protocol is basically the way in which a client communicates with a server. Clients and servers may support multiple protocols.)

Server-Side versus Client-Side

Server-side refers to something that happens in a server, while client-side refers to something that happens in a client. Server-side languages (e.g. PHP, CGI/Perl, JSP, ASP.NET) are processed on the server and send the resulting web page to the client which requested it. Client-side languages are processed on the client. JavaScript is usually a client-side language; the server-side variant of it is very rare. IE also supports VBScript as a client-side language.

Two Important Things to Note

One important thing to note is that web browsers get web pages after any code of a server-side language has been processed. So web browsers don't care which, if any, server-side language is used in constructing a web page.

An additional important thing to note is that while server-side languages can be considered as dependable, you can't always be certain of exactly what languages a web browser may support. A sizable number of people use browsers that either don't support JavaScript at all or have it disabled. Thus it's best to avoid using JavaScript for required functionality of a web page. Some older or non-graphical browsers don't even support CSS.

Last update: 2007-02-06