Servers and Clients
Servers
In Web Development, we are primarily concerned with web servers, which are servers designed to send and receive data according to the HyperText Transport Protocol (HTTP). It's important to keep in mind that a "server" is both the word we use for a machine dedicated to serving requests and the software that actually handles the communications. When we think of servers like the ones pictured above, each of those boxes may actually be running hundreds of server applications. And each of those server applications can be assigned a unique IP address and can listen and respond to requests.
In contemporary web development there are a few servers that share the bulk of the market. For a very long time, the most popular web server has been an application named Apache. Apache is an open source project supported by the Apache Foundation and is freely available to anyone for experimentation. Apache comes installed on all of Apple's OSX devices.
In addition to Apache there are two other web servers with significant market share: Nginx is a relative newcomer prized for it's lean system footprint and fast serving of static media files. It is also an open source project and available for free. Microsoft's Internet Information Services (IIS) is the only popular closed-source web server, and it supports the popular .Net web framework created by Microsoft.
Clients
The clients of web servers are typically web browsers. These are the applications used by people to access websites. Most people have a preference for Firefox, Chrome, Internet Explorer or Safari. In fact, there are several options that will result in a good experience for users online, and over the years web browsers have become much more standardized in how they interpret different directives. The website Browse Happy is a great one for keeping tabs on the latest versions of the most popular browsers.
For web developers, it is crucial to test your work in as many browsers as possible. You are rarely targeting only one browser over all others, so making sure your sites look and operate the same across browsers is critical. There are several ways to approach the task of using many browsers.
Install multiple browsers on your computer
Every web developer should have multiple browsers installed on their work computer. All of the major browsers except Internet Explorer are available for many platforms, and they are all free. Many web developers rotate which browsers they use in order to get the feel for each browser as a user and better anticipate where layouts might cause issues.
Before you release any site you should at least test in the latest versions of the browsers you can install on your personal development box.
Use virtual machines to run the rest
In order to fill in with legacy versions of browsers or browsers that don't exist for your development platform, you can use "virtual" machines to run these. Microsoft makes virtual machines with Internet Explorer available for free to web developers for use in testing websites. Visit the Modern.ie site to experiment with those.
Installing and running virtual machines on your personal development computer is OK, but it can also be a pain. There are additional services that allow you to more easily bring up legacy and alternate browsers, including mobile browsers for a vast array of devices. One service that makes this kind of virtual testing very easy is Sauce Labs, which provides a free level of registration where you can do an hour of testing per month.