The World Wide Web is the Internet's most popular application that has revolutionized the flow of information today. The Web wouldn't exist without HTTP servers which provide services to millions of users day after day. Web servers are required to perform well under stress which is a crucial aspect of their design. Accessing the computing power that lies in multicore processors is absolutely necessary to achieve this. This is where multithreading helps us.
The goal of my thesis is to present the foundations of the Internet and show how the World Wide Web works focusing on the role and structure of web servers. The "heart of the WWW", the HTTP protocol — that has handled our online data traffic since the birth of the Web — is examined in detail. Furthermore, I am introducing the performance enhancements hidden inside concurrent programming of servers and the thread pool pattern that facilitates this. The document compares three venerable threading libraries: POSIX thread, C++ standard thread and Boost.Thread. Finally, the thesis takes a look at the architecture of an open source server and enhances it with thread pooling.