本文整理了我在學習過程中接觸到的一些與HTTP Server有關的資料、文章及書籍,在這裏分享給大家,希望對大家有所幫助。
RFC及標準性文檔
RFC2616 - Hypertext Transfer Protocol — HTTP/1.1
HTTP協議標準文檔,所有從事HTTP相關開發的人員必備參考資料,建議仔細研讀。
RFC793 - TRANSMISSION CONTROL PROTOCOL
TCP協議標準文檔。
The WWW Common Gateway Interface Version 1.1
CGI1.1協議標準文檔,描述了Web Server與CGI Application通過CGI協議進行交互的所有細節。
FastCGI協議相關標準文檔,描述了FastCGI協議及Web Server及FastCGI Application如何進行交互。
基礎理論資料
一篇非常著名的討論高性能HTTP Server的文章,文章作者結合I/O策略詳細討論了高性能HTTP Server的話題。
How to use epoll? A complete example in C
一篇不錯的文章,給出了epoll編程的一個實例,有助於理解如何使用epoll。
一篇簡潔精煉的文章,探討了edge trigger、level trigger、select、poll及epoll相關的話題。
之前在博客園看到的一篇有點標題黨的文章 : ),不過內容很不錯。作者在文中講解了如何一步步實現一個基於事件驅動、I/O多路複用的非阻塞HTTP Server,前半部分的理論也講得很好。
開發技術文檔
Emiller’s Guide To Nginx Module Development
非常經典的關於Nginx擴展模塊開發的文章。因爲Nginx官方並沒有提供開發擴展模塊相關的文檔,因此這篇文章幾乎是Nginx模塊開發入門的唯一資料。
Emiller’s Advanced Topics In Nginx Module Development
上一篇文章的後續版本,探討了如subrequest相關的一些高級話題。本文的最後作者給出了ToDo,表明作者當時打算繼續寫第三篇,並會探討並行subrequest、Nginx內置數據結構等內容,但不知什麼原因,作者後來沒有繼續寫下去,真是非常遺憾。但這兩篇文章仍然是每個打算入門Nginx模塊開發的必讀聖經。
我之前寫的一篇文章,通過一個Nginx模塊的實際開發過程示例詳細介紹了Nginx模塊開發的基本知識點。
FastCGI官方關於開發FastCGI的文檔,每個開發與FastCGI相關程序人員必讀。
Libevent的參考文檔
程序參考
一個短小精悍的Http Server實現,全部只有503行代碼,但是麻雀雖小五臟俱全。這個程序的目的不是用於生產環境,而是展示一些Http Server最本源的東西。可以通過閱讀這段代碼理解一個Http Server的本質。其中包含一個簡易的Server和一個Client。
這裏有大量Nginx第三方模塊的源碼,是學習Nginx模塊開發很好的參考。
FastCGI的一個實現,以庫的模式提供給第三方使用。
電子書籍
UNIX Network Programming vol1 - The Sockets Networking API
Unix網絡編程的超經典著作,詳細講解了Socket 編程、Network I/O等內容,涉及Unix網絡編程的方方面面,如果想從事與HTTP Server有關的開發,這本書是夯實基礎的必讀經典。
第一本關於Nginx的書,不過比較偏重於應用,對開發幾乎沒有太多幫助,不過仍不失爲一本理解Nginx應用層面的絕佳參考書。
OReilly - Writing Apache Modules with Perl and C
一本介紹Apache模塊開發的書。