一本名副其實的 Web架構“聖經”——關於《HTTP權威指南》

謝工在GitChat發表於2012-05-21

超文字傳輸協議(Hypertext Transfer Protocol,HTTP)是在全球資訊網上進行通訊時所使用的協議方案。 HTTP有很多應用,但最著名的是用於 Web瀏覽器和 Web伺服器之間的雙工通訊。

HTTP起初是一個簡單的協議,因此你可能會認為關於這個協議沒有太多好說的。但現在,你手上拿著的卻是一本將近兩斤重的書。如果你對我們怎麼會寫出一本七百多頁的關於 HTTP的書感到奇怪的話,可以去看一下目錄。本書不僅僅是一本 HTTP首部的參考手冊,它還是一本名副其實的 Web架構“聖經”。

本書中,我們將 HTTP中一些互相關聯且常被誤解的規則梳理清楚,並編寫了一系列基於各種主題的章節,介紹了 HTTP各方面的特性。縱觀全書,我們對 HTTP“為什麼”這樣做進行了詳細的解釋,而不僅僅停留在它是“怎麼做”的。而且,為了節省大家尋找參考文獻的時間,我們還介紹了很多 HTTP應用程式正常工作所必需且重要的非 HTTP技術。在條理清晰的附錄中,可以找到按照字母排序的首部參考(這些首部構成了最常見的 HTTP文字的基礎)。我們希望這種概念性的設計有助於讀者更好地使用 HTTP。

本書是為所有希望理解 HTTP和 Web底層結構的人編寫的。軟 /硬體工程師也可以將本書作為 HTTP及相關 Web技術參考書使用。系統架構師和網路管理員可以通過本書更好地瞭解如何設計、實現並管理複雜的網路架構。效能工程師和分析人員可以從快取和效能優化的相關章節中獲益。市場營銷和諮詢專家還可以通過概念介紹更好地理解 Web技術的前景。

本書澄清了一些常見的誤解,推薦了“各種業內訣竅”,提供了便捷的參考資料,並且用通俗易懂的語言闡述了枯燥且令人費解的標準規範,還詳細探討了 Web正常工作所必需且互相關聯的技術。

本書創作歷時良久,是由很熱衷於因特網技術的人共同完成的,希望它能對你有所幫助。

執行例項: Joe的五金商店

本書的很多章節都涉及了一個假想的線上五金與裝潢商店例項,通過這個“ Joe的五金商店”來說明一些技術概念。我們為這個商店構建了一個真實的 Web站點(http://www.joes-hardware.com),以便大家能夠測試書中的部分例項。只要本書仍在銷售,我們就會一直維護好這個 Web站點。

本書內容

本書包含 21章,分為 5個邏輯部分(每部分都是一個技術專題),以及 8個很有用的附錄,這些附錄包含了參考資料,以及對相關技術介紹。

第一部分  HTTP:Web的基礎

第二部分  HTTP結構

第三部分 識別、認證按全

第四部分 實體、編碼和國際化

第五部分 內容釋出與分發

第六部分 附錄

第一部分用 4章的篇幅描述了 Web的基礎構件與 HTTP的核心技術。

第 1章簡要介紹了一下 HTTP。

第 2章詳細闡述了統一資源定位符( Uniform Resource Locator,URL)的格式, URL在因特網上命名的各種型別的資源,還介紹了統一資源名( Uniform Resource Name,URN)的演變及未來的發展。

第 3章詳細介紹了 HTTP報文是如何傳送 Web內容的。

第 4章解釋了 HTTP連線管理過程中一些經常會引起誤解,並且很少有文獻說明的 規則和行為。

第二部分重點介紹了 Web系統的結構構造塊: HTTP伺服器、代理、快取、閘道器以及機器人應用程式。(當然, Web瀏覽器也是一種構造塊,但在本書的第一部分已經對其進行過很詳細的介紹了。)第二部分包含以下 6章。

第 5章簡要介紹了 Web伺服器結構。

第 6章深入研究了 HTTP代理伺服器, HTTP代理伺服器是作為 HTTP服務與控制平臺使用的中間伺服器。

第 7章深入研究了 Web快取的問題——快取是通過儲存常用文件的本地副本來提高效能、減少流量的裝置。

第 8章探討了閘道器和應用伺服器的概念,通過它們 HTTP就可以與使用不同協議(包括 SSL加密協議)的軟體進行通訊了。

第 9章介紹了 Web上的各種客戶端型別,包括無處不在的瀏覽器、機器人和網路蜘蛛以及搜尋引擎。

第 10章講述了仍在研究之中的 HTTP協議: HTTP-NG協議。

第三部分提供了一套用於追蹤身份、增強安全性以及控制內容訪問的技術和技巧。包含下列 4章。

第 11章討論了了一些識別使用者的技術,以便向使用者提供私人化的內容服務。

第 12章重點介紹了一些驗證使用者身份的基本方式。這一章還對 HTTP認證機制與資料庫的介面問題進行了研究。

第 13章詳述了摘要認證,摘要認證是對 HTTP的複合的、建議性的增強措施,可以大幅度提高其安全性。

第 14章說明了因特網的密碼體系、數字證書以及 SSL。

第四部分含概(包含了實際 Web內容的) HTTP報文主體,一些用於描述和操縱報文主體所含內容的 Web標準。第四部分包含以下 3章。

第 15章介紹了 HTTP內容的結構。

第 16章探討了一些 Web標準,通過這些標準,全球範圍內的使用者都可以交換以不同語言和字符集表示的內容。

第 17章解釋了一些用於協商可接受內容的機制。

第五部分介紹了釋出和傳播 Web內容的技巧。包括以下 4章。

第 18章討論了在現代的網站託管環境中佈署伺服器的方式, HTTP對虛擬網站託管的支援。

第 19章探討了一些建立 Web內容,並將其裝載到 Web伺服器中去的技術。

第 20章介紹了能夠將輸入 Web流量分散到一組伺服器上去的一些工具和技術。

第 21章介紹了一些日誌格式和常見問題。

附錄 A詳述了統一資源描述符(Uniform Resource Identifier,URI)方案所支援的協議。

第六部分是一些很有用的參考附錄,以及相關技術的教程。

• 附錄 B列出了 HTTP的響應程式碼,方便使用。

• 附錄 C提供了 HTTP首部欄位的參考列表。

• 附錄 D提供了大量的 MIME型別的列表,解釋了 MIME型別的註冊方式。

• 附錄 E介紹了 HTTP認證中使用的 Base-64編碼。

• 附錄 F詳述瞭如何實現 HTTP中的各種認證方案。

• 附錄 G定義了 HTTP首部的語言標籤值。

• 附錄 H列出了用以支援國際化 HTTP的字元編碼。

每章都包含很多例項,指出了其他參考相關的資料。

致謝

本書是很多人共同勞動的成果。五位作者要感謝一些人,感謝他們為這本書所作出的巨大貢獻。 首先,我們要感謝 O’Reilly的編輯 Linda Mui。Linda早在 1996年就與 David和 Brian進行了首次接觸,她還提煉了幾個概念,並將其融入到今天大家拿到的這本書中。 Linda還幫助我們這幫首次寫書、徘徊不定的人能夠協調一致地按計劃逐步完成(儘管我們完成得並不怎麼快)。最重要的是, Linda給了我們一個創作此書的機會。我們要對她表示由衷地感謝。

我們還要感謝以下人士,他們非常聰明博學而且非常友善,為校對、註釋並修訂本書草稿花費了大量精力。他們是: Tony Bourke、Sean Burke、Mike Chowla、 Shernaz Daver、Fred Douglis、Paula Ferguson、Vikas Jha、Yves Lafon、Peter Mattis、Chuck Neerdaels、Luis Tavera、Duane Wessels、Dave Wu和 Marco Zagha。他們的一些觀點和建議大大提升了本書的質量。

本書大部分精美的插圖都是由 O’Reilly的 Rob Romano製作的。為了能夠更加清晰地描述一些微妙的概念,本書使用了大量詳盡備至的插圖。其中很多插圖製作起來都很費勁,而且還經過了大量的修改。如果一幅圖相當於一千個字的話, Rob就相當於為本書增加了數百頁的篇幅。

Brian還要特別感謝所有作者對本專案的付出。為了對 HTTP作出首次詳細而又切實可行的剖析,作者們投入了大量的時間。其間雖然出現了婚禮、孩子出世、刻不容緩的工作專案、創業公司起步以及就讀研究生院等諸多問題,但作者們的共同努力使這個專案得以圓滿完成。我們相信,每個人的努力付出都是值得的,而且最重要的是,這項工作為大家提供了一項很有價值的服務。 Brian還要感謝 Inktomi的員工們,感謝他們的熱情和支援,以及他們對 HTTP在實際應用程式中應用狀況的深刻洞察力。同時,還要感謝 Cajun-shop.com允許我們使用他們的站點來展示書中的一些範例。

David要感謝他的家人,尤其是母親和祖父長期以來不懈的支援。他要感謝那些在寫書這幾年中忍受他古怪作息習慣的家人們。他要對 Slurp、Orctomi和 Norma所做的一切表示感謝,還要感謝合作者們的辛勤工作。最後,他要感謝 Brian說服自己再次冒險。

Marjorie要感謝她丈夫 Alan Liu的技術洞察力,以及他對家庭的支援和理解。 Marjorie還要感謝合作者們豐富且深刻的靈感和洞察力。在編寫過程中能夠與他們共同工作,她感到非常開心。 Sailu要感謝 David和 Brian為他提供機會參與編寫本書,並感謝 Chuck Neerdaels將他引入了 HTTP的世界。

Anshu要感謝他的妻子 Rashi和他的父母。儘管本書的編寫曠日持久,但家人依舊對他有著足夠的耐心,不斷地支援並鼓勵他。

最後,作者們要集體感謝各位著名和無名的因特網先驅們,他們在過去四十年中所做的研究、開發和傳播工作對我們的科學研究、社會以及經濟共同作出了巨大的貢獻。沒有他們的工作,就沒有本書所要討論的話題。

有關本書作譯者

本書作者David Gourley是Endeca公司的CTO,負責Endeca公司知識導航產品的研究和開發。曾設計開發了Internet規模的搜尋資料庫的核心元件,並且是Web快取產品的高階開發人員。加利福尼亞大學伯克利分校的電腦科學專業畢業。

作者Brian Totty為Ludic實驗室的CEO,與人合作開發過Inktomi的搜尋引擎資料庫,負責過Inktomi的Web快取技術和流媒體技術的開發。之前曾在美國矽圖公司和蘋果計算機的先進技術小組任研究員。具有伊利諾伊大學厄本那-香檳分校電腦科學博士學位和麻省理工學院電腦科學學士學位。

本書譯者是來自解放軍理工大學通訊工程學院的陳涓老師。

相關文章