With the market share of 42% (according to a Netcraft survey in April 2014), Apache is the most widely-used Web server. It is free and open-source software that can be used on any operating system, including Linux, Unix, Windows and Mac OS.
Bug fixing and the development of new features is handled by the developer community and managed by the Apache Software Foundation, a nonprofit corporation which supports the Apache Web server.
Apache is a very feature-rich Web server. Features are introduced as modules that extend the core functionality. Some of the modules come with Apache itself, while others can be manually installed. Since the code is open, anyone can create and publish a new module with additional functionalities.
Apache Web server is part of the LAMP stack — it is usually installed on Linux operating systems, while the applications are developed in PHP with MySQL databases.
Although Apache Web server has generally good performance, it consumes a lot of CPU and memory because of the two main reasons. One reason is a big number of included features which are not being used, while the other is the fact that it is a process-based server. That means that each connection requires a separate thread.
Microsoft IIS is a Web server with the second largest market share (32% according to the same survey mentioned above). The server itself is free, but it can run only on Windows operating systems, thus incurring indirect licensing costs.
IIS is a proprietary software, meaning that the code is closed and not available to the public. New features, bug fixes, and support are provided by Microsoft. Although the development is not as quick as with the community support, it can be more reliable.
Microsoft IIS handles has a good number of features. Similar to Apache, features are included as extensions. However, IIS extensions are developed only by Microsoft.
According to some tests, IIS is faster than Apache (though still slower than nginx). It consumes less CPU, has a better response time and can handle more requests per second. However, it should be noted that the tests are not 100% reliable, as they are usually running on different software stacks (IIS applications are using the .NET framework on Windows, while Apache is usually running PHP applications on Linux operating systems).