This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Web Servers are programs or computers with a connection to the Internet that will deliver the web pages to the web users. By using client/server model and the HTTP (Hypertext Transfer Protocol) over the World Wide Web (www), Web Server will deliver the web pages to the web users as well as other files to the web-based application. (Wikipedia, 2010)
How does a Web Server works?
When a personal computer connected to the internet, Internet Service Provider (ISP) will assign a unique IP address to the computer so that, the other computer will know where to find it on the vast network. This IP address will identify the computer's location on the network.
The responsibility for a Web Server is to store and exchange the information with other. Because of this reason, at least two parties are required while the process is happening. The two parties are client which characteristic is requested the information and a server which characteristic is to stores the request. (Smith, n.d.)
For client they need software like web browser such as Internet Explorer, Mozilla Firefox to exchange the information. For server, the software that able to run is depends on the Operating System (OS) that chosen for the server. For example: Apache Web Server or Microsoft Internet Information Server (IIS). Normally the client will communicate with the Web Server by using Hypertext Transfer Protocol (HTTP).
Based on Figure 1.1, it shows the basic operation of web-server. While the user opens a web browser and type in the URL, browser will separate the URL into three parts which are protocol, server name and the file's name. For example: the URL that user key in is "http://www.seminar.com/web-server.htm", "http" will be the protocol, "www.seminar.com" will be the server name and the "web-server.htm" will be the file name.
After the browser determines which protocol should be used, then the browser will use the DNS system to translate the server name "www.seminar.com" into an IP Address, which is use to connect to the server machine. When the browser connects to the correct server, the HTTP protocol will send a GET request to the server and request for the file "web-server.htm".
While the server gets the "web-server.htm" file, the server will send back the HTML text for the Web page to the browser. Web browser will format the page onto the screen to the user. (Marshall, B., 2000) If the server cannot allocate the file, an error message will send back to the client and inform the client to retry. After the browser get the response from the server, the browser will translates the data to HTML and display for the client in graphic form. (Smith, ud.)
Apache Web Server
According to the research from "Web-Hosting-Top.com", Apache Web Server is the most popular Web Server in the world. Apache Web Server also can be named as Apache HTTP Server is a most popular web server on the world and it provides access to most of the web sites on the internet. Part of the reason for the public widely use for the Apache HTTP Server is because it is freely available. Besides that, it is reliable and easy to set up and configure. The most important thing is, it can provide most of the requirement for a web site. (Young, 1999)
Apache is developed by a group of about 20 volunteer programmers, called the Apache Group. The first version of Apache Server which developed by the Apache Group is based on the NCSA HTTPd (National Center for Supercomputing Application). Most of the people will think that, this web server will called "Apache" is because it was developed from the existing NCSA code and several of patchy, so it name is called "a patchy server" or Apache Server. (QuinStreet Inc, 2010)
Apache is an open-source web server platform. Apache Server application is available for a widely popular modern web platforms/operating systems such as UNIX, Microsoft Windows, LINUX, Mac OS X and etc.
Internet Information Server (IIS)
"Web-Hosting-Top.com" also states that, IIS is the second most popular web server which is just behind of the industry leader Apache HTTP Server. IIS can be a web server in your computer which can help you to develop a dynamic website and you can publish the website on your own server.
Different with the Apache, IIS is only used to run on Windows platform which is comes to bundled with Windows NT platforms and above version. Internet Information Services (IIS) has a low system administration cost to help an organization to increase Web site and application availability. (Kranthi KumarVerroju, 2006). Besides that, by using IIS, a set of programs for building and administering Web sites, a search engine, and support for writing Web-based applications that access database will be included by Microsoft. (Dodge, 1999)
In the process of IIS, it is similar with other process of web server. IIS will receive the request from the client and executes the required file and send result back to the client. Besides that, IIS server also provides the services of SMTP (Simple Mail Transport Protocol) and FrontPage server extension. The client can use to send the email and use the dynamic feather like form handler of FrontPage extension. (WikiAnswer, n.d.)
Features of Apache Web Server and IIS Web Server
There are many features and function that support Apache Web Server successfully to be use by the users. Below will be briefly discuss some important functions and features of Apache Web Server
Authentication and Authorization modules
Authentication Modules is the most important function for a server. The module that is use by for authentication include mod_access, mod_auth, mod_digest and mod_auth_digest
mod_access is used to provide the access control to particular parts of the server based on the client's hostname, IP address, or other characteristics of the client request which had captured in environment variables.
Generally, it use "Allow" and "Deny" directives to configure the access of the client to the server. For example, Allow from 192.168.1.8 or Deny from apache.org
Use HTTP Basic Authentication to control the user authentication by using the text files.
Under mod_auth, there have consisted of three important function, which are AuthAuthoritative Directive, AuthGroupFile Directive and AuthUserFile Directive.
User can set the AuthAuthoritative Directive to on/off to control the availability for the function. AuthGroupFile Directive is set the name of a text file which contains a list of user group. And AuthUserFile Directive is user to set the name of a text file which contains a list of username and password.
mod_digest & mod_auth_digest
mod_auth_digest is similar to the mod_digest, it is a updated version for mod_digest. To avoid the crash of the system, both of this module cannot be used together due to they may share some same configuration directive.
This module had implement HTTP Digest Authentication which is more secure than HTTP Basic Authentication.
This module is only works in supporting the browsers. So, the user should use it at the environment where all users will have supporting browsers.
2.1.2 SSL(Secure Socket Layer) and TSL(Transport Layer Security. ) Support
Secure Socket Layer (SSL) is a protocol that mainly provides the security transaction while the web browsers want to transfer the information to web server. On the other hand, Transport Layer Security (TLS) version 1, have a same function with SSL version 3 which is created by Internet Engineering Task Force (IETF). In generally, you can always see SSL and TLS working in the same application. Both of the protocol can be used to set with email servers or any client-server transaction.Module that is user for both SSL and TSL is mod_ssl.
2.1.3 URL Rewriter (mod_rewrite)
mod_rewrite is a set of module which is hard to understand by users especially for the beginner. mod_rewrite is like a killer, even an Apache expert sometimes also not really understand or not really know how to control the mod_rewrite module. Users will either love it after discovery its ability, or never to use it after first time tried.
mod_rewrite is a helpful module which can help the user to change the URL. They can either change the URL to another URL which is more understandable or change it to a filename, perhaps users also can use this module change the filename to another meaningful filename.
Syntax that needs to use to change the URL is not easy. Mod_rewrite may use the symbol as a kind of programming language to make the changes. For example, you have a page called example.php with the parameter of URL like http://www.rewrite.com/example.php?url=category. You wish to have a more nicely and easy to read URL and want to change the previous URL to http://www.rewrite.com/category. So, you have to put the command like below into .htaccess file inside Apache.
RewriteRule ^([^/\.]+)/?$ /index.php?url=$1 [L]
2.1.4 Filtering support (mod_include and mod_ext_filter)
mod_include module is use in the server-side which will provides a filter and process the file before server send the file to the client. On the other hand, mod_ext_filter is presents a simple and easy to understand programming model for filters. It can simply run content through an external program before the output deliver to the client. For example, when users request some information from Apache Web Server, the server will send back the message needed to the user. Before the message deliver to the client, mod_ext_filter will modify or log the content and then pass the result message through the web browser to users.
2.1.5 Virtual Hosting
Generally, the term of Virtual Hosting is referring to its ability on running more than one web site or server in a single machine. Virtual hosting can be divided into two types: which are "IP-based" and name-based". For "IP-based", it means that there have multiple IP in a website. On the other hand, "name-based" virtual hosting means, you have multiple hostname running on the same IP address.
IIS Web Server
2.2.1 FTP Services(File Transfer Protocol)
FTP is stand for File Transfer Protocol which the function is similar to HTTP. It helps to transfer a Web page from a host server to user's Web browser by using TCP/IP protocol over the Internet. FTP commonly is uploading a file from local to server or downloads a file from server to local.
2.2.2 SMTP Services (Simple Mail Transfer Protocol)
Unlike the FTP Module, SMTP is use for sending or receiving the email across the Internet. When SMTP send the message from client-side to the mail server, users may use IMAP (Internet Message Access Protocol) or POP (Post Office Protocol) to retrieve their message from the servers. Both of the IMAP and POP protocol are Application Layer Internet Protocol which is mainly act as a email retrieval.
Figure 2.1 Outbound and Inbound email
From Figure 2.1, there have the process on how the client and server sending and retrieving the email through SMTP.
Logging and Diagnostics module
A log file in IIS Web Server is handled by HTTP.sys kernel mode device driver. This logging and diagnostics module is used to perform the request-processing pipeline, such as how information pass and process the status to HTTP.sys for reporting event, logging and tracking request.
User can user the Logging function once they finish installing the IIS Web Server in their computer. After user finish install the IIS Web Server, click on Start> Control Panel> Administrative Tools > Internet Information Server (IIS) Manager, and you can see the "logging" module like Figure 2.2. Users can do the configuration either in their web site and client side.
Figure 2.2 Logging Module
Advantages and Disadvantages of Apache Web Server and IIS Web Server
Advantages for Apache Web Server
The reason why Apache Web Server will become the top one web server as per the research in "Web-Hosting-Top.com" in the world is because it is open source software and it is free to download for everyone in the world. Programmers can download the Apache Web Server from the relevant website, view or edit it. The programmer can create a custom solution based on the core Apache program, or add on some feather and function to suit to the business requirement.
Besides that, programmers who are come from worldwide will constantly contribute to improve the Apache Web Server which is available to use by everyone. Every improvement for the Apache will be upgrade in the official website and the version of the Apache will be updated. User may not need to wait for the full version of the software to be released; it can be installed in its official website as soon as they are available.
Different with others Web Server which having the user support at only one location, Apache Web Server had a large user support community who is spread throughout multiple locations, companies and forums. While you are facing the problem with the feathers of the Apache Web Server, you can post your problem in the relevant webpage or forums, the programmers who are from all around the world will leave you the comment or suggestion to help you to solve your problem. By using this kind of communication, user can obtain the answer from the technician as soon as possible, no matter where they are located.
Apache Web Server is portable software. It can be run on various operating system include Linux, Mac OS X, Microsoft Windows and etc. (Arie, 2010)
Disadvantages for Apache Web Server
Apache Web Server is not regularly updated.
Apache is developed by the programmer from all around the world can programmers will support Apache anytime at anywhere. This can bring many beneficial for Apache user, but these also lead some disadvantages.
Unlike IIS Web Server, developer for Apache Web Server is come from all around the world. They may be working at different environments which are not related to IT field. Due to this reason, the developer may not have so much time to develop the new feature and function and come out with the updated version of Apache. So that, the Apache Web Server is not updated regularly and it may not have any advance notice for the latest version of Apache Web Server.
Required technical knowledge to install and configure
Before the user start to user Apache Web Server, they may need some certain knowledge on how to install the server, how to configure the server after they install and how to use the server in order to get the better services?
Apache Web Server can be used by any Operating System such as Microsoft Windows, Mac OS X, UNIX, Linux and etc. But the users who want to use Apache Web Server hosting anything from personal website to corporate domains; they must have certain knowledge and understanding about the Apache Web Server. Users have to use command prompt to configure the file in Apache Web Server. For example, users can use "which" command to check whether their OS have Apache installed or not? Besides that, users have to use "yum install httpd" command to install the Apache to their OS. Besides the two examples I given, there still have much more command to learn by users.
No Specific User Interface
Originally, Apache Web Server does not consist of any user interface. Most of the user may configure the web server by using command prompt and some specific syntax. For the older generation for Apache Web Server, the market still do not exist any web-based interface for system administration. But currently, there have various kind of web-based interface in the market such as Cloudmin and Virtualmin, which can use to setup Apache Web Server. (Webmin, n.d.)
Advantages for IIS Web Server
Refer to Figure 3.1; we can clearly to see that, IIS Web Server has a complete GUI Interface. User can do the configuration by just clicking some simple button.
Figure 3.1 GUI for IIS Web Server
Performance monitor feature which include in IIS Web Server in Microsoft Windows is very useful. In Microsoft Windows, users click on Start > Run > perfmon.exe, then the user can view the window as Figure 3.2. When then user click on "Open Resource Monitor", user can view the window as Figure 3.3. User can use the Window Performance Monitor to examine how programs you run affect your computer's performance, both in real time and by collection log data for later analysis. Users can examine the data in a graph, histogram or report.
Figure 3.2 Performance Monitor
Figure 3.3 Resource Monitor
In Figure 3.3, users can view detailed real-time information about hardware resources such as CPU, Disk, Network and Memory. Users can use this feature to control performance of your PC.
IIS Web Server is developed by the programmers who are come from Microsoft. This has meant that, when you are facing any problem, you have to refer to the Microsoft's technical support, but not others. This is a good advantage for the IIS users; because the developers or programmers who are developed IIS Web Server will clearly know every single code inside the IIS. When the users request the solution of their problem, IIS technical support can give the fast response to the user and the solution may useful to help the users to solve their problem.
3.4 Disadvantages for IIS Web Server
Only works with Microsoft Window OS
As a programmer, they must know that, IIS Web Server is only works in Microsoft Windows. You cannot find the IIS Web Server in other operating system. Users can not change the usage of the IIS Web Server to suit to their enterprise environment.
Figure 3.4 had shown that Microsoft Windows had own the license for IIS Web Server. So without the permission for Microsoft Windows, IIS Web Server cannot be use in other operating system.
Figure 3.4 Licenses for Internet Information Services (IIS)
Unlike Apache Web Server, source code from IIS Web Server has been monopoly by Microsoft Corp. If the users want to use IIS Web Server as their main server, users have to design their enterprise environment to suit into the web server. Users can only view all the setting
If you are using the IIS Web Server in your Windows, web server may be crash from time to time. This kind of crashed may be cause by the faulty of the computer hardware, a buggy system file, Web Application that had been took down that system and crashed or other matters. To reduce this problem, install the IISDebugTools may be help the users to reduce this kind of crashed happen in real-life.
IISDebugTool is designed to help determine which requests from the system had caused IIS crashed and to terminate specific information when a request does not get any respond in an expected time period.
Compare and Contrast of Apache Web Server and IIS Web Server
The main difference between both of the web servers is Apache Web Server is an open source web server; it is freely available for the users from all around the world. But for IIS Web Server, it is come together with Microsoft Windows, on the other word, users have buy the Windows so that, they just can enjoy the IIS Web Server.
Apache Web Server is developed by a number of volunteer programmers who are come from all around the world called Apache Group. This Apache Group had communicated with each other through the network and developed a standard Apache models to the public. Public user can change the functionality from the standard Apache source code to suit on their user environment. When the user facing some problem of the Apache Web Server, they can post their problem in the Internet, any of the apache professional will help them to describe or solve the problem and this can be happened anytime at anywhere.
Unlike the Apache Web Server, Microsoft has their own programmers to developed the IIS Web Server and provide to the Microsoft Windows users only. When the IIS Web Server has any doubt about the functionality of the servers, they can only have the answers from the IIS developers.
On the other hand, we cannot prove that, Apache technical supports are as good as IIS technical supports. Let's think, Apache technical supports are come from all around the world, they may not know every single code or every function inside Apache Web Server. Perhaps, different developers from different country may develop different functionality of Apache. For example, if the user is facing some back up problem about Apache Web Server, they may need to wait for the response from the technical support that is familiar with backup service.
But, for IIS developers, who are come from Microsoft, they are always working with each other. All of the developers can clearly know about the functionality of IIS Web Server. Every technical support also can provide the fast and correct response to their users.
4.3 GUI Interface
When users run on the IIS Web Servers, it already had a GUI interface for users to configure and use it. Figure 3.1 has shown that the Graphical User Interface of IIS Web Server. User can easily edit or change the setting from the interface. For example, from Figure 4.2, it has clearly shown that, users can add the some application and change the permission to allow specific user can login in to the IIS Web Server. All of this can be just done by clicking few simple buttons from the interface.
Figure 4.2 Configure Setting in IIS Web Server
On the other hand, for Apache Web Server there have no specific GUI interface for user to use. When users install Apache to their computer, there have three main configuration files in Apache which are httpd.conf, srm.conf and access.conf. All of these files are containing the instruction to tell Apache how to run the server and the basic configuration of the server. In the market, there have many companies offer the GUI installer which support the Apache Web Server, but most of the Apache professional people do not use those GUI interface to configure; they prefer to edit the configuration file in Apache by using command prompt as Figure 4.3.
Figure 4.3 Apache Command Prompt
Every IIS Web Server also had their own GUI interface, users can easily to configure their IIS Web Server before they start to use it. The configuration page for IIS Web Server is easy to understand and easy to control by the users. Apache Web Server which does not consist of any GUI interface may lead some problem for the users. Users need to have good enough knowledge about syntax and command for the Apache Web Server before they start to use it. They need to know some certain syntax to install the Apache Web Server and the command that use to configure it. Due to this reason, most of the first time users may feel that, using Apache Web Server is not as easy as using IIS Web Server because it is hard to install and configure.
4.5 Operating System
Apache Web Server can be widely use by many operation system such as LINUX, UNIX, Mac OS X, Microsoft Windows and etc. But for IIS Web Server, it can only used to run on Microsoft Windows.
4.6 ASP.Net Support
Originally, IIS Web Server had been supported by ASP.NET which is marketed and developed by Microsoft to build web service, web sites and web application. So, if users are using Microsoft Windows, they can develop the .NET page easily and publish their website by using IIS Web Server.
On the other hand, Apache Web Server is hard to work together with ASP.NET. Users have to install some extension module in order to communication between the ASP.NET web page and Apache Web Server. mod_aspdotnet module is loadable by Apache to serve ASP.NET content which is using Microsoft ASP.NET hosting and .NET framework runtime with the Apache Web Server.(Wrowe, n.d.).
Need to pay for the Windows, and IIS will build in inside.
Microsoft Windows, Linux, Mac OS X, UNIX
Microsoft Windows only.
Only provided for Microsoft Windows.
Apache Software Foundation
Need to install additionally
Come from all around the world
Microsoft Technical Support
Yes. By install mod_aspdotnet.
As a conclusion, I found that, using Apache Web Server is better than using IIS Web Server. As a student who is processing their final year project, Apache Web Server is a recommended server for the student to use. Firstly is because the cost of the server. Apache Web Server is an open source server; student can download the server from the Internet with no budget to consider. But if student want to use IIS Web Server, it may be can't affordable for a student.
Besides that, is the easily to control issue for Apache Web Server. Students' final year project may need a various function of Web Server to support their project. IIS Web Server may bring some limitation for the student. By using the Apache Web Server, student can easily configure the functionality or create a new function to the Apache Web Server to suit on their project requirement.
On the others hand, our TARC computer division's students might have some knowledge about the configuration syntax for Apache, it is similar to the syntax with SUSE Linux. Due to this reason, basic configuration for the Apache Web Server will not bring a big problem for the students.
Finally, user can install the Apache Web Server in any operating system that they familiar with, but IIS is just only can be use in Microsoft Windows.