雖然搞網站好幾年了,對於Client-side (如HTML,CSS,Javascript等)或Server-Side(如PHP)等技術都算熟悉,之前修過網路概論的課也對TCP/IP等網路架構有所了解,但是對Web中一項最重要的通訊協定HTTP卻所知有限,網路概論中對HTTP也講的非常簡單。
不過在看過蔡學鏞學長的書評之後,讓我燃起想深入了解的興趣,整個 HTTP Architecture 講起來也厚達六百多頁呢,而且最近剛好看到廖長輩貼的HTTP加速文,關於keep-alive,pipelined connections等這些我都不太清楚什麼作用的東西,也都在這本書的範疇內。
Part1 主講 HTTP 通訊協定本身,第一章是概論,第二章講Internet Resource的觀念(URI),其中有兩種實作方法URL及URN,URI的語法包含scheme(用什麼protocol來互動),server address跟path(放哪裡)。URN則是指定某resource名稱,不需要管放在哪裡,不過URN缺少實際架構,很少在用。
第三章則仔細講解 HTTP Messages,包含有哪些 Methods, Status Codes,Headers等,還有HTTP 0.9,1.0,1.1的各版本差異。不過 Headers 主要只是分類描述而已,本書各章在講解Web架構的同時,會在仔細說明相關的HTTP協定。
第四章講HTTP如何管理 TCP connections,一般講HTTP大都著墨在封包本身,對於HTTP connections卻講不多,但這卻是HTTP programming必須要了解的東西。這章有很多我以前不知道的東西,也複習了一下TCP協定,非常精采,值得另闢專文討論。
另外這本書的插圖實在很棒,又多又好,把一些重要觀念都畫出來了。
接下來Part2則是HTTP Architecture,包含 Web Servers, Proxies,Caching,Gateway,Tunnels,Relays,SSL,Web Robots,HTTP-NG(HTTP/2.0)等。