Since 1995, the Apache web server has been in use. It powers more websites than any other product, it is the first and the second is Microsoft IIS. Apache has been available for many years and it has many users, which led to lots of module been written to expand its functionality out of which most are open sources. For instance, one popular configuration is to use Apache to server up static web pages.
Apache is very useful in creating threads and processes with additional connections. Apache can be configured to run in pre-forked or worker multi process made (MPM) which helps to create new processes as there is connection from additional users.
The pre forked mode creates on thread per process each of which is liable to handle one user’s request. Worker mode create new processes too, but each is liable to handle more than one thread, each of which handles one request per user. So to sum it up, one worker mode process handles more than one connection and one pre-fork mode process handles one connection only. The workers mode uses less memory compared to fork mode. This is because processes consume more memory than threads, which are essentially codes running inside a process.
The Apache 2.4 has many improvements which include processes that are spin offs create fewer threads than normal Apache worker mode would. This is because one thread can handle more than one connection, instead of requiring a new process for each connection.
Apache is known for its power and includes modules that are needed to work with back end application servers and run scripting languages. Apache servers can be deployed in great numbers. It has a load balancer module too, and there are hardware based load balancers too. Also, Apache comes in with built in support for PHP, Python, Perl and other languages.