- HTTP權威指南
- (美)David Gourley Brian Totty等
- 3396字
- 2020-06-23 13:52:12
前言
HTTP(Hypertext Transfer Protocol,超文本傳輸協議)是在萬維網上進行通信時所使用的協議方案。HTTP有很多應用,但最著名的是用于Web瀏覽器和Web服務器之間的雙工通信。
HTTP起初是一個簡單的協議,因此你可能會認為關于這個協議沒有太多好說的。但現在,你手上拿著的卻是一本將近兩斤重的書。如果你想知道我們怎么會寫出一本700多頁的關于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。
第四部分涵蓋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的字符編碼。
每章都包含很多實例,以及到其他相關的參考資料的鏈接。
排版約定
本書使用了下列排版約定。
· 楷體
用于URL、C函數、命令名、MIME類型、新術語的定義以及重點內容。
· 等寬字體
用于計算機的輸出、代碼以及所有文字文本。
· 加粗等寬字體
用于用戶的輸入。
意見及問題
請將有關此書的意見及問題發給出版商:
美國:
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
本書有一個Web頁面,上面列出了勘誤表、一些實例以及所有的附加信息。可以通過以下鏈接來訪問這個頁面。
http://www.oreilly.com/catalog/httptdg/
為本書提意見或者詢問一些技術性問題,可以向以下地址發送郵件。
更多與書籍、會議、資源中心以及O'Reilly網絡有關的問題,都請參見O'Reilly的網站。
致謝
本書是很多人共同勞動的成果。五位作者要感謝一些人,感謝他們為這本書所作出的巨大貢獻。
首先,我們要感謝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和他的父母。盡管本書的編寫曠日持久,但家人依舊對他有著足夠的耐心,不斷地支持并鼓勵他。
最后,作者們要集體感謝各位著名和無名的因特網先驅們,他們在過去40年中所做的研究、開發和傳播工作對我們的科學界、社會及經濟團體作出了巨大的貢獻。沒有他們的工作,就沒有本書所要討論的話題。
- The Supervised Learning Workshop
- 零基礎PHP學習筆記
- INSTANT OpenCV Starter
- Visual FoxPro程序設計教程(第3版)
- vSphere High Performance Cookbook
- Visual Basic程序設計教程
- C語言程序設計
- Blockly創意趣味編程
- Learning ArcGIS Pro
- C語言課程設計
- Python算法指南:程序員經典算法分析與實現
- C++反匯編與逆向分析技術揭秘(第2版)
- Vue.js應用測試
- Raspberry Pi Robotic Projects(Third Edition)
- Hands-On Dependency Injection in Go