This article summarizes some materials, articles and books I used when learning HTTP Server development. Hope this will help you.
RFC and standard documents
RFC2616 – Hypertext Transfer Protocol — HTTP/1.1
HTTP protocol standard document, it's an essential reference document for all personnel engaged in the development of the HTTP-related projects, careful study is recommended.
RFC793 – TRANSMISSION CONTROL PROTOCOL
TCP Protocol standard document
The WWW Common Gateway Interface Version 1.1
CGI1.1 protocol standard document describing all details about how the Web Server interact with CGI Application through CGI protocol.
The FastCGI protocol standard document, describes the FastCGI protocol, and how Web Server interacts with FastCGI Application.
Basic theory materials
A very famous article which discusses high-performance HTTP Server.
How to use epoll? A complete example in C
This article gives an example of epoll using C. Demonstrate how to use epoll.
Development technical document
Emiller’s Guide To Nginx Module Development
Classic article about the the Nginx extension module development. Because the Nginx official doesn't provide extension module development related document, so the article is almost the only entry document for Nginx module development.
Emiller’s Advanced Topics In Nginx Module Development
The follow-up version of the previous article, it explores some advanced topics such as subrequest. At the end of this article the author gives ToDo, indicating that the author intends to continue to write the third one, and will explore the parallel subrequest Nginx built-in data structures, etc., but I do not know why the author did not subsequently continue to write it. These two articles are still the Bible for people intendeing to do Nginx module development.
People who want to develop FastCGI related programs must read this.
Libevent reference document
Program
A dapper Http Server implementation, all only 503 lines of code, but the small but perfectly formed. The purpose of this program is not used in a production environment, but to show the origin Http Server. Can read the code to understand the nature of a Http Server. Which contains a summary of the Server and a Client.
There are a large number of third-party Nginx module source code, they are good resource for learning the Nginx module development.
An implementation of FastCGI. It provides a library for developers to use.
EBook
UNIX Network Programming vol1 – The Sockets Networking API
Unix network programming super classics, explain in detail Socket Programming, Network I/O and other content, involved in all aspects of network programming in Unix,
The first book about Nginx, but more emphasis on applications. Have no much help for development, but nonetheless an excellent reference book of an understanding Nginx application level.
OReilly – Writing Apache Modules with Perl and C
A book about Apache modules.
Author : ericzhang Source : http://www.codinglabs.org/html/http-server-docs.html#jtss-tsina