httphost怎么代碼實現(xiàn)?
只談 Linux 下。直接用現(xiàn)成的,Apache / Nginx,python -m SimpleHTTPServer用庫寫基本的,Python 的 HTTPServer / CGIHTTPServer 等用 C 從底層手寫:POSIX API, Sockets,RFC 2616 。基本的單線程迭代阻塞處理;然后是高級點的優(yōu)化I/O multiplexing (select / poll, epoll)進(jìn)程、線程分派模型:one-request-per-child / one-request-per-thread非阻塞 I/O,edge trigger高級功能性能優(yōu)化:Memory cachingI/O 優(yōu)化 如 文件系統(tǒng)選擇、Linux AIO 等。
單這塊往下看文件系統(tǒng)、I/O 調(diào)度和其它 OS 內(nèi)核細(xì)節(jié),就可以挖非常深TCP/IP 優(yōu)化CGI / FastCGI / WSGI / AJK 等后端協(xié)議支持HTTPS 協(xié)議支持模塊化,擴展模塊支持,這塊更偏向于架構(gòu)設(shè)計。
Apache 就有非常出名的動態(tài)模塊設(shè)計集群支持3 只要看看 APUE / UNP 即可,4 需要廣泛研究不同的代碼和各種技術(shù)的文檔。
RFC 2616: Hyper Text Transfer Protocol HTTP/1.
1 http://www.w3.org/Protocols/rfc2616/rfc2616.htmlUNP: Unix Network Programming, vol.
1 http://book.douban.com/subject/1756533/APUE: Advanced Programming in the Unix Environment http://book.douban.com/subject/2284230/TCP/IP Illustrated http://book.douban.com/subject/1741925/相對更入門的:
Advanced Linux Programminghttp://www.advancedlinuxprogramming.com/zh-cn: http://sourceforge.net/apps/trac/elpi/wiki/ALP