Whatever decision you make on a web server will lead you down a specific development road (Microsoft vs Java). There are some standard capabilities that all web servers share.
Prices for web servers range from free (Apache) to sort of free (you get IIS automatically when you have a Windows 200x server) to expensive (WebSphere). Most web servers share a common set of features and functionality that include content support, caching, virtual hosting, authentication and performance.
Which server you use depends on a number of things such as:
* Are you hosting internally or with a service provider?
* What are the development skills in house?
* Do you have Microsoft Windows Servers or Unix Servers in house?
* What is your budget?
The features and functionality of web servers can be broken down into several areas:
1. Static content is html and images, stylesheets, etc.
3. The ability to cache versions of a web page (whether its html or a processed dynamic page) in a location that is faster to retrieve than calling and processing the page from the server again is another feature. Caching is an important capability for websites server thousands or millions of visitors.
Generally sites are hosted with their own IP address. Companies create domain names for their websites (i.e. Suite101.com) and attach that domain name to the IP address. When a visitor types a domain name in the browser the internet translates it to its IP address and sends the visitor to the site accordingly. Some web servers have the ability to host a number of websites on a single IP address using a process called virtual hosting. This involves associating sites to distinct port/IP address combinations on the server.
Process isolation is an another feature for a web server. It?s important that if something happens to a website and it crashes that it doesn?t bring down all the other websites that reside on the server. Process isolation involves setting a website to run in its own process on the server.
* Anonymous authentication means that everyone has access and there is no security required.
* Basic authentication means that a user name and password are required and are passed to the server in clear text (usually by entering the username and password in a login screen on the website.
While this is secure, it?s open to risk because the security credentials are passed in clear text.
* NTLM is a Microsoft security protocol that encrypts the credentials before being passed.
Finally all web servers offer SSL (Secure Socket Layer) which is a secure transport layer that encrypts all communications between the browser and the web server. Port 443 is the most common SSL port used.
If you use Basic authentication with SSL you have a much more secure authentication process.
Another important aspect for web servers is performance. How well do they perform under load, how many requests (pages) are server per minute (throughput), how many users can request content at any given time (concurrency). Performance testing of applications is an important activity when developing a website and the web server can be a bottle neck itself.
Top 5 Web Servers
According to Netcraft Surveys the following are the most popular web servers used as of September 2007:
* Apache 50.48%
* IIS 34.94%
* Google 4.9%
* Sun 1.64%
* Lighttpd 1.12%
Selecting the right Web Server
If you have Microsoft windows servers in house, it?s likely you will go with IIS. It?s part of the server that you just have to turn on.
This means you are developing in Microsoft technologies. You may already have a team of Java or PHP developers in house which means you are leaning toward web servers like Apache and WebSphere.
Deciding to use open source software in house is another decision you need to consider carefully. Support is generally fairly good in the community but there’s no official support team when things go wrong.
Selecting a web server is an important decision. Whatever decision you make will lead you down a specific development road (Microsoft vs Java). So make sure you understand their capabilities overall and then select according to your technology strategy.