編輯推薦
HTTP及相關核心Web技術方麵的著作
專傢詳解HTTP協議、深入說明Web工作原理
語言簡潔精確,細節圖解翔實
高效Web開發、Web程序員必備指南
HTTP是Web的基礎,這裏所說的Web,不僅隻是通常意義上的Browser/Server端的開發,而是Web Service。
HTTP初看上去似乎是非常簡單的協議,是的,HTTP 0.9確實是非常簡單的,簡單到隻有一個GET方法,更不用說什麼持久連接瞭。HTTP協議還有一個顯著特點,那就是其協議是明文的基於文本的。這使得通過工具與HTTP進行交互變得非常簡單,原始的telnet也可以發送HTTP請求(參考本書15頁)。
而大多數人對HTTP的瞭解也就是這種程度瞭(沒有讀此書之前的我也是這樣)。此書的意義在於,它讓你知道,HTTP不僅隻有一個簡單的GET,HTTP可以做為一種通用的分布式編程的協議。現如今Web上大行其道的所謂Restful Web Service,其基礎就是HTTP,而提齣Rest這個概念的Roy Fielding,也是HTTP協議(RFC2616)的主要作者之一
內容簡介
HTTP(HyperText Transfer Protocol,超文本傳輸協議)是Web客戶端與服務器交互文檔和信息時所使用的協議,是每個成功Web事務的幕後推手。眾所周知,我們每天訪問公司內部網絡、搜索絕版書籍、研究統計信息時所使用的瀏覽器的核心就是HTTP。但HTTP的應用遠不僅僅是瀏覽Web內容。由於HTTP既簡單又普及,很多其他網絡應用程序也選擇瞭它,尤其是采用SOAP和XML-RPC這樣的Web服務。
詳細解釋瞭HTTP協議,包括它是如何工作的,如何用它來開發基於Web的應用程序。但本書並不隻介紹瞭HTTP,還探討瞭HTTP有效工作所依賴的所有其他核心因特網技術。盡管HTTP是本書的中心內容,但本書的本質是理解Web的工作原理,以及如何將這些知識應用到Web編程和管理之中去,主要涵蓋HTTP的技術運作方式、産生動機、性能和目標,以及一些相關技術問題。
本書是HTTP協議及相關Web技術方麵的著作,主要內容包括:
HTTP方法、首部以及狀態碼
優化代理和緩存的方法
設計Web機器人和爬蟲的策略
Cookies、認證以及安全HTTP
國際化及內容協商
重定嚮及負載平衡策略
本書由具有多年實踐經驗的專傢編寫,通過簡潔語言和大量翔實的細節圖解幫助讀者形象地理解Web幕後所發生的事情,詳細說明瞭Web上每條請求的實際運行情況。要想高效地進行Web開發,所有Web程序員、管理員和應用程序開發者都應該熟悉HTTP。很多書籍隻介紹瞭Web的使用方式,而本書則深入說明瞭Web的工作原理。
作者簡介
David Gourley,Endeca的首席技術官(Chief TechnologyOfficer),負責Endeca産品的研究及開發。Endeca開發的因特網及內部網絡信息訪問解決方案為企業級數據的導航及研究提供瞭一些新的方式。在到Endeca工作之前,David是Inktomi基礎工程組的一員,他在那兒幫助開發瞭Inktomi的因特網搜索數據庫,是Inktomi的Web緩存産品的主要開發者。David在加州大學伯剋利分校獲得瞭計算機科學的學士學位,還擁有Web技術方麵的幾項專利。
BrianTotty,齣任瞭Inktomi公司(這是1996年他參與建立的一傢公司)研發部副總裁,在公司中他負責Web緩存、流媒體及因特網搜索技術的研發工作。他曾是SiliconGraphics公司的一名科學傢,他在那兒為高性能網絡和超級計算機係統設計軟件並對其進行優化。在那之前,他是蘋果計算機公司高級技術組的一名工程師。Brian在伊利諾伊大學Urbana-Champaign分校獲得瞭計算機科學的博士學位,在MIT獲得瞭計算機科學及電子工程的學士學位,在那裏他獲得瞭計算機係統研究的Organick奬。他還為加州大學擴展係統開發並講授瞭一些屢獲殊榮的因特網技術方麵的課程。
MarjorieSayer在Inktomi公司負責編寫Web緩存方麵的軟件。在加州大學伯剋利分校獲得瞭數學碩士和博士學位之後,一直緻力於數學課程的改革。從1990年開始緻力於能量資源管理、並行係統軟件、電話和網絡方麵的寫作。
Sailu Reddy目前在Inktomi公司負責嵌入式的性能增強型HTTP代理的開發。Sailu從事復雜軟件係統的開發已經有12年瞭,從1995年開始深入Web架構的研發工作。他是Netscape Web服務器、Web代理産品,以及後麵幾代産品的核心工程師。他具備HTTP應用程序、數據壓縮技術、數據庫引擎以及閤作管理等方麵的技術經驗。Sailu在亞裏桑那大學獲得瞭信息係統的碩士學位並握有Web技術方麵的多項專利。
AnshuAggarwal是Inktomi公司的工程總監。他領導著Inktomi公司Web緩存産品的協議處理工程組,從1997年就開始參與Inktomi的Web技術設計工作。Anshu在科羅拉多大學Boulder分校獲得瞭計算機科學的碩士和博士學位,從事分布式多處理器的內存一緻性技術研究。他還擁有電子工程的碩士和學士學位。Anshu撰寫瞭多篇技術論文,還擁有兩項專利。
目錄
第一部分 HTTP:Web的基礎
第1章 HTTP概述
1.1 HTTP——因特網的多媒體信使
1.2 Web客戶端和服務器
1.3 資源
1.3.1 媒體類型
1.3.2 URI
1.3.3 URL
1.3.4 URN
1.4 事務
1.4.1 方法
1.4.2 狀態碼
1.4.3 Web頁麵中可以包含多個對象
1.5 報文
1.6 連接
1.6.1 TCP/IP
1.6.2 連接、IP地址及端口號
1.6.3 使用Telnet實例
1.7 協議版本
1.8 Web的結構組件
1.8.1 代理
1.8.2 緩存
1.8.3 網關
1.8.4 隧道
1.8.5 Agent代理
1.9 起始部分的結束語
1.10 更多信息
1.10.1 HTTP協議信息
1.10.2 曆史透視
1.10.3 其他萬維網信息
第2章 URL與資源
2.1 瀏覽因特網資源
2.2 URL的語法
2.2.1 方案——使用什麼協議
2.2.2 主機與端口
2.2.3 用戶名和密碼
2.2.4 路徑
2.2.5 參數
2.2.6 查詢字符串
2.2.7 片段
2.3 URL快捷方式
2.3.1 相對URL
2.3.2 自動擴展URL
2.4 各種令人頭疼的字符
2.4.1 URL字符集
2.4.2 編碼機製
2.4.3 字符限製
2.4.4 另外一點說明
2.5 方案的世界
2.6 未來展望
2.7 更多信息
第3章 HTTP報文
3.1 報文流
3.1.1 報文流入源端服務器
3.1.2 報文嚮下遊流動
3.2 報文的組成部分
3.2.1 報文的語法
3.2.2 起始行
3.2.3 首部
3.2.4 實體的主體部分
3.2.5 版本0.9的報文
3.3 方法
3.3.1 安全方法
3.3.2 GET
3.3.3 HEAD
3.3.4 PUT
3.3.5 POST
3.3.6 TRACE
3.3.7 OPTIONS
3.3.8 DELETE
3.3.9 擴展方法
3.4 狀態碼
3.4.1 100~199——信息性狀態碼
3.4.2 200~299——成功狀態碼
3.4.3 300~399——重定嚮狀態碼
3.4.4 400~499——客戶端錯誤狀態碼
3.4.5 500~599——服務器錯誤狀態碼
3.5 首部
3.5.1 通用首部
3.5.2 請求首部
3.5.3 響應首部
3.5.4 實體首部
3.6 更多信息
第4章 連接管理
4.1 TCP連接
4.1.1 TCP的可靠數據管道
4.1.2 TCP流是分段的、由IP分組傳送
4.1.3 保持TCP連接的正確運行
4.1.4 用TCP套接字編程
4.2 對TCP性能的考慮
4.2.1 HTTP事務的時延
4.2.2 性能聚焦區域
4.2.3 TCP連接的握手時延
4.2.4 延遲確認
4.2.5 TCP慢啓動
4.2.6 Nagle算法與TCP_NODELAY
4.2.7 TIME_WAIT纍積與端口耗盡
4.3 HTTP連接的處理
4.3.1 常被誤解的Connection首部
4.3.2 串行事務處理時延
4.4 並行連接
4.4.1 並行連接可能會提高頁麵的加載速度
4.4.2 並行連接不一定更快
4.4.3 並行連接可能讓人“感覺”更快一些
4.5 持久連接
4.5.1 持久以及並行連接
4.5.2 HTTP/1.0+ keep-alive連接
4.5.3 Keep-Alive操作
4.5.4 Keep-Alive選項
4.5.5 Keep-Alive連接的限製和規則
4.5.6 Keep-Alive和啞代理
4.5.7 插入Proxy-Connection
4.5.8 HTTP/1.1持久連接
4.5.9 持久連接的限製和規則
4.6 管道化連接
4.7 關閉連接的奧秘
4.7.1 “任意”解除連接
4.7.2 Content-Length及截尾操作
4.7.3 連接關閉容限、重試以及冪等性
4.7.4 正常關閉連接
4.8 更多信息
4.8.1 HTTP連接
4.8.2 HTTP性能問題
4.8.3 TCP/IP
第二部分 HTTP結構
第5章 Web服務器
5.1 各種形狀和尺寸的Web服務器
5.1.1 Web服務器的實現
5.1.2 通用軟件Web服務器
5.1.3 Web服務器設備
5.1.4 嵌入式Web服務器
5.2 最小的Perl Web服務器
5.3 實際的Web服務器會做些什麼
5.4 第一步——接受客戶端連接
5.4.1 處理新連接
5.4.2 客戶端主機名識彆
5.4.3 通過ident確定客戶端用戶
5.5 第二步——接收請求報文
5.5.1 報文的內部錶示法
5.5.2 連接的輸入/輸齣處理結構
5.6 第三步——處理請求
5.7 第四步——對資源的映射及訪問
5.7.1 docroot
5.7.2 目錄列錶
5.7.3 動態內容資源的映射
5.7.4 服務器端包含項
5.7.5 訪問控製
5.8 第五步——構建響應
5.8.1 響應實體
5.8.2 MIME類型
5.8.3 重定嚮
5.9 第六步——發送響應
5.10 第七步——記錄日誌
5.11 更多信息
第6章 代理
6.1 Web的中間實體
6.1.1 私有和共享代理
6.1.2 代理與網關的對比
6.2 為什麼使用代理
6.3 代理會去往何處
6.3.1 代理服務器的部署
6.3.2 代理的層次結構
6.3.3 代理是如何獲取流量的
6.4 客戶端的代理設置
6.4.1 客戶端的代理配置:手工配置
6.4.2 客戶端代理配置:PAC文件
6.4.3 客戶端代理配置:WPAD
6.5 與代理請求有關的一些棘手問題
6.5.1 代理URI與服務器URI的不同
6.5.2 與虛擬主機一樣的問題
6.5.3 攔截代理會收到部分URI
6.5.4 代理既可以處理代理請求,也可以處理服務器請求
6.5.5 轉發過程中對URI的修改
6.5.6 URI的客戶端自動擴展和主機名解析
6.5.7 沒有代理時URI的解析
6.5.8 有顯式代理時URI的解析
6.5.9 有攔截代理時URI的解析
6.6 追蹤報文
6.6.1 Via首部
6.6.2 TRACE方法
6.7 代理認證
6.8 代理的互操作性
6.8.1 處理代理不支持的首部和方法
6.8.2 OPTIONS:發現對可選特性的支持
6.8.3 Allow首部
6.9 更多信息
第7章 緩存
7.1 冗餘的數據傳輸
7.2 帶寬瓶頸
7.3 瞬間擁塞
7.4 距離時延
7.5 命中和未命中的
7.5.1 再驗證
7.5.2 命中率
7.5.3 字節命中率
7.5.4 區分命中和未命中的情況
7.6 緩存的拓撲結構
7.6.1 私有緩存
7.6.2 公有代理緩存
7.6.3 代理緩存的層次結構
7.6.4 網狀緩存、內容路由以及對等緩存
7.7 緩存的處理步驟
7.7.1 第一步——接收
7.7.2 第二步——解析
7.7.3 第三步——查找
7.7.4 第四步——新鮮度檢測
7.7.5 第五步——創建響應
7.7.6 第六步——發送
7.7.7 第七步——日誌
7.7.8 緩存處理流程圖
7.8 保持副本的新鮮
7.8.1 文檔過期
7.8.2 過期日期和使用期
7.8.3 服務器再驗證
7.8.4 用條件方法進行再驗證
7.8.5 If-Modified-Since:Date再驗證
7.8.6 If-None-Match:實體標簽再驗證
7.8.7 強弱驗證器
7.8.8 什麼時候應該使用實體標簽和最近修改日期
7.9 控製緩存的能力
7.9.1 no-Store與no-Cache響應首部
7.9.2 max-age響應首部
7.9.3 Expires響應首部
7.9.4 must-revalidate響應首部
7.9.5 試探性過期
7.9.6 客戶端的新鮮度限製
7.9.7 注意事項
7.10 設置緩存控製
7.10.1 控製Apache的HTTP首部
7.10.2 通過HTTP-EQUIV控製HTML緩存
7.11 詳細算法
7.11.1 使用期和新鮮生存期
7.11.2 使用期的計算
7.11.3 完整的使用期計算算法
7.11.4 新鮮生存期計算
7.11.5 完整的服務器——新鮮度算法
7.12 緩存和廣告
7.12.1 發布廣告者的兩難處境
7.12.2 發布者的響應
7.12.3 日誌遷移
7.12.4 命中計數和使用限製
7.13 更多信息
第8章 集成點:網關、隧道及中繼
8.1 網關
8.2 協議網關
8.2.1 HTTP/*:服務器端Web網關
8.2.2 HTTP/HTTPS:服務器端安全網關
8.2.3 HTTPS/HTTP客戶端安全加速器網關
8.3 資源網關
8.3.1 CGI
8.3.2 服務器擴展API
8.4 應用程序接口和Web服務
8.5 隧道
8.5.1 用CONNECT建立HTTP隧道
8.5.2 數據隧道、定時及連接管理
8.5.3 SSL隧道
8.5.4 SSL隧道與HTTP/HTTPS網關的對比
8.5.5 隧道認證
8.5.6 隧道的安全性考慮
8.6 中繼
8.7 更多信息
第9章 Web機器人
9.1 爬蟲及爬行方式
9.1.1 從哪兒開始:根集
9.1.2 鏈接的提取以及相對鏈接的標準化
9.1.3 避免環路的齣現
9.1.4 循環與復製
9.1.5 麵包屑留下的痕跡
9.1.6 彆名與機器人環路
9.1.7 規範化URL
9.1.8 文件係統連接環路
9.1.9 動態虛擬Web空間
9.1.10 避免循環和重復
9.2 機器人的HTTP
9.2.1 識彆請求首部
9.2.2 虛擬主機
9.2.3 條件請求
9.2.4 對響應的處理
9.2.5 User-Agent導嚮
9.3 行為不當的機器人
9.4 拒絕機器人訪問
9.4.1 拒絕機器人訪問標準
9.4.2 Web站點和robots.txt文件
9.4.3 robots.txt文件的格式
9.4.4 其他有關robots.txt的知識
9.4.5 緩存和robots.txt的過期
9.4.6 拒絕機器人訪問的Perl代碼
9.4.7 HTML的robot-control元標簽
9.5 機器人的規範
9.6 搜索引擎
9.6.1 大格局
9.6.2 現代搜索引擎結構
9.6.3 全文索引
9.6.4 發布查詢請求
9.6.5 對結果進行排序,並提供查詢結果
9.6.6 欺詐
9.7 更多信息
第10章 HTTP-NG
10.1 HTTP發展中存在的問題
10.2 HTTP-NG的活動
10.3 模塊化及功能增強
10.4 分布式對象
10.5 第一層——報文傳輸
10.6 第二層——遠程調用
10.7 第三層——Web應用
10.8 WebMUX
10.9 二進製連接協議
10.10 當前的狀態
10.11 更多信息
第三部分 識彆、認證與安全
第11章 客戶端識彆與cookie機製
11.1 個性化接觸
11.2 HTTP首部
11.3 客戶端IP地址
11.4 用戶登錄
11.5 胖URL
11.6 cookie
11.6.1 cookie的類型
11.6.2 cookie是如何工作的
11.6.3 cookie罐:客戶端的狀態
11.6.4 不同站點使用不同的cookie
11.6.5 cookie成分
11.6.6 cookies版本0(Netscape)
11.6.7 cookies版本1(RFC 2965)
11.6.8 cookie與會話跟蹤
11.6.9 cookie與緩存
11.6.10 cookie、安全性和隱私
11.7 更多信息
第12章 基本認證機製
12.1 認證
12.1.1 HTTP的質詢/響應認證框架
12.1.2 認證協議與首部
12.1.3 安全域
12.2 基本認證
12.2.1 基本認證實例
12.2.2 Base-64用戶名/密碼編碼
12.2.3 代理認證
12.3 基本認證的安全缺陷
12.4 更多信息
第13章 摘要認證
13.1 摘要認證的改進
13.1.1 用摘要保護密碼
13.1.2 單嚮摘要
13.1.3 用隨機數防止重放攻擊
13.1.4 摘要認證的握手機製
13.2 摘要的計算
13.2.1 摘要算法的輸入數據
13.2.2 算法
HTTP權威指南 epub pdf mobi txt 電子書 下載 2024
HTTP權威指南 下載 epub mobi pdf txt 電子書