|
-- 會員 / 註冊 --
|
|
|
|
HTTP權威指南 ( 簡體 字) |
作者:[美] David Gourley Brian Totty Marjorie Sayer Sailu Reddy Aushu | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 33471 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:9/1/2012 |
頁數:694 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787115281487 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:《HTTP權威指南》是HTTP及其相關核心Web技術方面的權威著作,主要介紹了Web應用程序是如何工作的,核心的因特網協議如何與架構構建塊交互,如何正確實現因特網客戶和服務器等。 《HTTP權威指南》適合所有想了解HTTP和Web底層結構的人閱讀。
|
目錄:第一部分 HTTP:Web的基礎
第1章 HTTP概述 3 1.1 HTTP——因特網的多媒體信使 4 1.2 Web客戶端和服務器 4 1.3 資源 5 1.3.1 媒體類型 6 1.3.2 URI 7 1.3.3 URL 7 1.3.4 URN 8 1.4 事務 9 1.4.1 方法 9 1.4.2 狀態碼 10 1.4.3 Web頁面中可以包含多個對象 10 1.5 報文 11 1.6 連接 13 1.6.1 TCP/IP 13 1.6.2 連接、IP地址及端口號 14 1.6.3 使用Telnet實例 16 1.7 協議版本 18 1.8 Web的結構組件 19 1.8.1 代理 19 1.8.2 緩存 20 1.8.3 網關 20 1.8.4 隧道 21 1.8.5 Agent代理 21 1.9 起始部分的結束語 22 1.10 更多信息 22 1.10.1 HTTP協議信息 22 1.10.2 歷史透視 23 1.10.3 其他萬維網信息 23
第2章 URL與資源 25 2.1 瀏覽因特網資源 26 2.2 URL的語法 28 2.2.1 方案——使用什么協議 29 2.2.2 主機與端口 30 2.2.3 用戶名和密碼 30 2.2.4 路徑 31 2.2.5 參數 31 2.2.6 查詢字符串 32 2.2.7 片段 33 2.3 URL快捷方式 34 2.3.1 相對URL 34 2.3.2 自動擴展URL 37 2.4 各種令人頭疼的字符 38 2.4.1 URL字符集 38 2.4.2 編碼機制 38 2.4.3 字符限制 39 2.4.4 另外一點說明 40 2.5 方案的世界 40 2.6 未來展望 42 2.7 更多信息 44
第3章 HTTP報文 45 3.1 報文流 46 3.1.1 報文流入源端服務器 46 3.1.2 報文向下游流動 47 3.2 報文的組成部分 47 3.2.1 報文的語法 48 3.2.2 起始行 50 3.2.3 首部 53 3.2.4 實體的主體部分 55 3.2.5 版本0.9的報文 55 3.3 方法 56 3.3.1 安全方法 56 3.3.2 GET 56 3.3.3 HEAD 57 3.3.4 PUT 57 3.3.5 POST 58 3.3.6 TRACE 58 3.3.7 OPTIONS 60 3.3.8 DELETE 60 3.3.9 擴展方法 61 3.4 狀態碼 62 3.4.1 100∼199——信息性狀態碼 62 3.4.2 200∼299——成功狀態碼 63 3.4.3 300∼399——重定向狀態碼 64 3.4.4 400∼499——客戶端錯誤狀態碼 68 3.4.5 500∼599——服務器錯誤狀態碼 69 3.5 首部 70 3.5.1 通用首部 71 3.5.2 請求首部 72 3.5.3 響應首部 74 3.5.4 實體首部 75 3.6 更多信息 77
第4章 連接管理 79 4.1 TCP連接 80 4.1.1 TCP的可靠數據管道 80 4.1.2 TCP流是分段的、由IP分組傳送 81 4.1.3 保持TCP連接的正確運行 82 4.1.4 用TCP套接字編程 84 4.2 對TCP性能的考慮 85 4.2.1 HTTP事務的時延 86 4.2.2 性能聚焦區域 87 4.2.3 TCP連接的握手時延 87 4.2.4 延遲確認 88 4.2.5 TCP慢啟動 89 4.2.6 Nagle算法與TCP_NODELAY 89 4.2.7 TIME_WAIT累積與端口耗盡 90 4.3 HTTP連接的處理 91 4.3.1 常被誤解的Connection首部 91 4.3.2 串行事務處理時延 92 4.4 并行連接 94 4.4.1 并行連接可能會提高頁面的加載速度 94 4.4.2 并行連接不一定更快 95 4.4.3 并行連接可能讓人“感覺”更快一些 95 4.5 持久連接 96 4.5.1 持久以及并行連接 96 4.5.2 HTTP/1.0+ keep-alive連接 97 4.5.3 Keep-Alive操作 98 4.5.4 Keep-Alive選項 98 4.5.5 Keep-Alive連接的限制和規則 99 4.5.6 Keep-Alive和啞代理 100 4.5.7 插入Proxy-Connection 102 4.5.8 HTTP/1.1持久連接 104 4.5.9 持久連接的限制和規則 104 4.6 管道化連接 105 4.7 關閉連接的奧秘 106 4.7.1 “任意”解除連接 106 4.7.2 Content-Length及截尾操作 107 4.7.3 連接關閉容限、重試以及冪等性 107 4.7.4 正常關閉連接 108 4.8 更多信息 110 4.8.1 HTTP連接 110 4.8.2 HTTP性能問題 110 4.8.3 TCP/IP 111
第二部分 HTTP結構
第5章 Web服務器 115 5.1 各種形狀和尺寸的Web服務器 116 5.1.1 Web服務器的實現 116 5.1.2 通用軟件Web服務器 117 5.1.3 Web服務器設備 117 5.1.4 嵌入式Web服務器 118 5.2 最小的Perl Web服務器 118 5.3 實際的Web服務器會做些什么 120 5.4 第一步——接受客戶端連接 121 5.4.1 處理新連接 121 5.4.2 客戶端主機名識別 122 5.4.3 通過ident確定客戶端用戶 122 5.5 第二步——接收請求報文 123 5.5.1 報文的內部表示法 124 5.5.2 連接的輸入/輸出處理結構 125 5.6 第三步——處理請求 126 5.7 第四步——對資源的映射及訪問 126 5.7.1 docroot 127 5.7.2 目錄列表 129 5.7.3 動態內容資源的映射 130 5.7.4 服務器端包含項 131 5.7.5 訪問控制 131 5.8 第五步——構建響應 131 5.8.1 響應實體 131 5.8.2 MIME類型 132 5.8.3 重定向 133 5.9 第六步——發送響應 134 5.10 第七步——記錄日志 134 5.11 更多信息 134
第6章 代理 135 6.1 Web的中間實體 136 6.1.1 私有和共享代理 136 6.1.2 代理與網關的對比 137 6.2 為什么使用代理 138 6.3 代理會去往何處 143 6.3.1 代理服務器的部署 144 6.3.2 代理的層次結構 144 6.3.3 代理是如何獲取流量的 147 6.4 客戶端的代理設置 148 6.4.1 客戶端的代理配置:手工配置 149 6.4.2 客戶端代理配置:PAC文件 149 6.4.3 客戶端代理配置:WPAD 150 6.5 與代理請求有關的一些棘手問題 151 6.5.1 代理URI與服務器URI的不同 151 6.5.2 與虛擬主機一樣的問題 152 6.5.3 攔截代理會收到部分URI 153 6.5.4 代理既可以處理代理請求,也可以處理服務器請求 154 6.5.5 轉發過程中對URI的修改 154 6.5.6 URI的客戶端自動擴展和主機名解析 155 6.5.7 沒有代理時URI的解析 155 6.5.8 有顯式代理時URI的解析 156 6.5.9 有攔截代理時URI的解析 157 6.6 追蹤報文 158 6.6.1 Via首部 158 6.6.2 TRACE方法 162 6.7 代理認證 164 6.8 代理的互操作性 165 6.8.1 處理代理不支持的首部和方法 166 6.8.2 OPTIONS:發現對可選特性的支持 166 6.8.3 Allow首部 167 6.9 更多信息 167
第7章 緩存 169 7.1 冗余的數據傳輸 170 7.2 帶寬瓶頸 170 7.3 瞬間擁塞 171 7.4 距離時延 172 7.5 命中和未命中的 173 7.5.1 再驗證 173 7.5.2 命中率 175 7.5.3 字節命中率 176 7.5.4 區分命中和未命中的情況 176 7.6 緩存的拓撲結構 177 7.6.1 私有緩存 177 7.6.2 公有代理緩存 177 7.6.3 代理緩存的層次結構 179 7.6.4 網狀緩存、內容路由以及對等緩存 180 7.7 緩存的處理步驟 181 7.7.1 第一步——接收 181 7.7.2 第二步——解析 182 7.7.3 第三步——查找 182 7.7.4 第四步——新鮮度檢測 182 7.7.5 第五步——創建響應 182 7.7.6 第六步——發送 183 7.7.7 第七步——日志 183 7.7.8 緩存處理流程圖 183 7.8 保持副本的新鮮 183 7.8.1 文檔過期 184 7.8.2 過期日期和使用期 185 7.8.3 服務器再驗證 185 7.8.4 用條件方法進行再驗證 186 7.8.5 If-Modified-Since:Date再驗證 187 7.8.6 If-None-Match:實體標簽再驗證 189 7.8.7 強弱驗證器 190 7.8.8 什么時候應該使用實體標簽和最近修改日期 190 7.9 控制緩存的能力 191 7.9.1 no-Store與no-Cache響應首部 191 7.9.2 max-age響應首部 192 7.9.3 Expires響應首部 192 7.9.4 must-revalidate響應首部 192 7.9.5 試探性過期 193 7.9.6 客戶端的新鮮度限制 194 7.9.7 注意事項 194 7.10 設置緩存控制 195 7.10.1 控制Apache的HTTP首部 195 7.10.2 通過HTTP-EQUIV控制HTML緩存 196 7.11 詳細算法 197 7.11.1 使用期和新鮮生存期 198 7.11.2 使用期的計算 198 7.11.3 完整的使用期計算算法 201 7.11.4 新鮮生存期計算 202 7.11.5 完整的服務器——新鮮度算法 202 7.12 緩存和廣告 204 7.12.1 發布廣告者的兩難處境 204 7.12.2 發布者的響應 204 7.12.3 日志遷移 205 7.12.4 命中計數和使用限制 205 7.13 更多信息 205
第8章 集成點:網關、隧道及中繼 207 8.1 網關 208 8.2 協議網關 210 8.2.1 HTTP/*:服務器端Web網關 211 8.2.2 HTTP/HTTPS:服務器端安全網關 212 8.2.3 HTTPS/HTTP客戶端安全加速器網關 212 8.3 資源網關 213 8.3.1 CGI 215 8.3.2 服務器擴展API 215 8.4 應用程序接口和Web服務 216 8.5 隧道 217 8.5.1 用CONNECT建立HTTP隧道 217 8.5.2 數據隧道、定時及連接管理 219 8.5.3 SSL隧道 219 8.5.4 SSL隧道與HTTP/HTTPS網關的對比 220 8.5.5 隧道認證 221 8.5.6 隧道的安全性考慮 221 8.6 中繼 222 8.7 更多信息 224
第9章 Web機器人 225 9.1 爬蟲及爬行方式 226 9.1.1 從哪兒開始:根集 226 9.1.2 鏈接的提取以及相對鏈接的標準化 227 9.1.3 避免環路的出現 228 9.1.4 循環與復制 228 9.1.5 面包屑留下的痕跡 229 9.1.6 別名與機器人環路 230 9.1.7 規范化URL 230 9.1.8 文件系統連接環路 231 9.1.9 動態虛擬Web空間 232 9.1.10 避免循環和重復 233 9.2 機器人的HTTP 236 9.2.1 識別請求首部 236 9.2.2 虛擬主機 236 9.2.3 條件請求 237 9.2.4 對響應的處理 238 9.2.5 User-Agent導向 239 9.3 行為不當的機器人 239 9.4 拒絕機器人訪問 240 9.4.1 拒絕機器人訪問標準 241 9.4.2 Web站點和robots.txt文件 242 9.4.3 robots.txt文件的格式 243 9.4.4 其他有關robots.txt的知識 246 9.4.5 緩存和robots.txt的過期 246 9.4.6 拒絕機器人訪問的Perl代碼 246 9.4.7 HTML的robot-control元標簽 249 9.5 機器人的規范 251 9.6 搜索引擎 254 9.6.1 大格局 255 9.6.2 現代搜索引擎結構 255 9.6.3 全文索引 255 9.6.4 發布查詢請求 257 9.6.5 對結果進行排序,并提供查詢結果 258 9.6.6 欺詐 258 9.7 更多信息 258
第10章 HTTP-NG 261 10.1 HTTP發展中存在的問題 262 10.2 HTTP-NG的活動 263 10.3 模塊化及功能增強 263 10.4 分布式對象 264 10.5 第一層——報文傳輸 264 10.6 第二層——遠程調用 265 10.7 第三層——Web應用 265 10.8 WebMUX 265 10.9 二進制連接協議 266 10.10 當前的狀態 267 10.11 更多信息 267
第三部分 識別、認證與安全
第11章 客戶端識別與cookie機制 271 11.1 個性化接觸 272 11.2 HTTP首部 273 11.3 客戶端IP地址 274 11.4 用戶登錄 275 11.5 胖URL 277 11.6 cookie 278 11.6.1 cookie的類型 278 11.6.2 cookie是如何工作的 279 11.6.3 cookie罐:客戶端的狀態 280 11.6.4 不同站點使用不同的cookie 282 11.6.5 cookie成分 283 11.6.6 cookies版本0(Netscape) 284 11.6.7 cookies版本1(RFC 2965) 285 11.6.8 cookie與會話跟蹤 288 11.6.9 cookie與緩存 290 11.6.10 cookie、安全性和隱私 291 11.7 更多信息 292
第12章 基本認證機制 293 12.1 認證 294 12.1.1 HTTP的質詢/響應認證框架 294 12.1.2 認證協議與首部 295 12.1.3 安全域 296 12.2 基本認證 297 12.2.1 基本認證實例 298 12.2.2 Base-64用戶名/密碼編碼 298 12.2.3 代理認證 299 12.3 基本認證的安全缺陷 300 12.4 更多信息 301
第13章 摘要認證 303 13.1 摘要認證的改進 304 13.1.1 用摘要保護密碼 304 13.1.2 單向摘要 306 13.1.3 用隨機數防止重放攻擊 307 13.1.4 摘要認證的握手機制 307 13.2 摘要的計算 308 13.2.1 摘要算法的輸入數據 308 13.2.2 算法H(d)和KD(s,d) 310 13.2.3 與安全性相關的數據(A1) 310 13.2.4 與報文有關的數據(A2) 310 13.2.5 摘要算法總述 311 13.2.6 摘要認證會話 312 13.2.7 預授權 312 13.2.8 隨機數的選擇 315 13.2.9 對稱認證 315 13.3 增強保護質量 316 13.3.1 報文完整性保護 316 13.3.2 摘要認證首部 317 13.4 應該考慮的實際問題 317 13.4.1 多重質詢 318 13.4.2 差錯處理 318 13.4.3 保護空間 318 13.4.4 重寫URI 319 13.4.5 緩存 319 13.5 安全性考慮 320 13.5.1 首部篡改 320 13.5.2 重放攻擊 320 13.5.3 多重認證機制 320 13.5.4 詞典攻擊 321 13.5.5 惡意代理攻擊和中間人攻擊 321 13.5.6 選擇明文攻擊 321 13.5.7 存儲密碼 322 13.6 更多信息 322
第14章 安全HTTP 323 14.1 保護HTTP 的安全 324 14.2 數字加密 326 14.2.1 密碼編制的機制與技巧 326 14.2.2 密碼 327 14.2.3 密碼機 328 14.2.4 使用了密鑰的密碼 328 14.2.5 數字密碼 328 14.3 對稱密鑰加密技術 330 14.3.1 密鑰長度與枚舉攻擊 330 14.3.2 建立共享密鑰 332 14.4 公開密鑰加密技術 332 14.4.1 RSA 333 14.4.2 混合加密系統和會話密鑰 334 14.5 數字簽名 334 14.6 數字證書 336 14.6.1 證書的主要內容 336 14.6.2 X.509 v3證書 337 14.6.3 用證書對服務器進行認證 338 14.7 HTTPS——細節介紹 339 14.7.1 HTTPS概述 339 14.7.2 HTTPS方案 340 14.7.3 建立安全傳輸 341 14.7.4 SSL握手 341 14.7.5 服務器證書 343 14.7.6 站點證書的有效性 344 14.7.7 虛擬主機與證書 345 14.8 HTTPS客戶端實例 345 14.8.1 OpenSSL 346 14.8.2 簡單的HTTPS客戶端 347 14.8.3 執行OpenSSL客戶端 350 14.9 通過代理以隧道形式傳輸安全流量 351 14.10 更多信息 353 14.10.1 HTTP安全性 353 14.10.2 SSL與TLS 353 14.10.3 公開密鑰基礎設施 354 14.10.4 數字密碼 354
第四部分 實體、編碼和國際化
第15章 實體和編碼 357 15.1 報文是箱子,實體是貨物 359 15.2 Content-Length: 實體的大小 361 15.2.1 檢測截尾 361 15.2.2 錯誤的Content-Length 362 15.2.3 Content-Length與持久連接 362 15.2.4 內容編碼 362 15.2.5 確定實體主體長度的規則 362 15.3 實體摘要 364 15.4 媒體類型和字符集 364 15.4.1 文本的字符編碼 365 15.4.2 多部分媒體類型 365 15.4.3 多部分表格提交 366 15.4.4 多部分范圍響應 367 15.5 內容編碼 368 15.5.1 內容編碼過程 368 15.5.2 內容編碼類型 369 15.5.3 Accept-Encoding首部 369 15.6 傳輸編碼和分塊編碼 371 15.6.1 可靠傳輸 371 15.6.2 Transfer-Encoding首部 372 15.6.3 分塊編碼 373 15.6.4 內容編碼與傳輸編碼的結合 375 15.6.5 傳輸編碼的規則 375 15.7 隨時間變化的實例 375 15.8 驗證碼和新鮮度 376 15.8.1 新鮮度 377 15.8.2 有條件的請求與驗證碼 378 15.9 范圍請求 380 15.10 差異編碼 382 15.11 更多信息 385
第16章 國際化 387 16.1 HTTP對國際性內容的支持 388 16.2 字符集與HTTP 389 16.2.1 字符集是把字符轉換為二進制碼的編碼 389 16.2.2 字符集和編碼如何工作 390 16.2.3 字符集不對,字符就不對 391 16.2.4 標準化的MIME charset值 391 16.2.5 Content-Type首部和Charset首部以及META標志 393 16.2.6 Accept-Charset首部 393 16.3 多語言字符編碼入門 394 16.3.1 字符集術語 394 16.3.2 字符集的命名很糟糕 395 16.3.3 字符 396 16.3.4 字形、連筆以及表示形式 396 16.3.5 編碼后的字符集 397 16.3.6 字符編碼方案 399 16.4 語言標記與HTTP 402 16.4.1 Content-Language首部 402 16.4.2 Accept-Language首部 403 16.4.3 語言標記的類型 404 16.4.4 子標記 404 16.4.5 大小寫 405 16.4.6 IANA語言標記注冊 405 16.4.7 第一個子標記——名字空間 405 16.4.8 第二個子標記——名字空間 406 16.4.9 其余子標記——名字空間 407 16.4.10 配置和語言有關的首選項 407 16.4.11 語言標記參考表 407 16.5 國際化的URI 408 16.5.1 全球性的可轉抄能力與有意義的字符的較量 408 16.5.2 URI字符集合 408 16.5.3 轉義和反轉義 409 16.5.4 轉義國際化字符 409 16.5.5 URI中的模態切換 410 16.6 其他需要考慮的地方 410 16.6.1 首部和不合規范的數據 410 16.6.2 日期 411 16.6.3 域名 411 16.7 更多信息 411 16.7.1 附錄 411 16.7.2 互聯網的國際化 411 16.7.3 國際標準 412
第17章 內容協商與轉碼 413 17.1 內容協商技術 414 17.2 客戶端驅動的協商 415 17.3 服務器驅動的協商 415 17.3.1 內容協商首部集 416 17.3.2 內容協商首部中的質量值 417 17.3.3 隨其他首部集而變化 417 17.3.4 Apache中的內容協商 417 17.3.5 服務器端擴展 418 17.4 透明協商 419 17.4.1 進行緩存與備用候選 419 17.4.2 Vary首部 420 17.5 轉碼 422 17.5.1 格式轉換 422 17.5.2 信息綜合 423 17.5.3 內容注入 423 17.5.4 轉碼與靜態預生成的對比 423 17.6 下一步計劃 424 17.7 更多信息 424
第五部分 內容發布與分發
第18章 Web主機托管 429 18.1 主機托管服務 430 18.2 虛擬主機托管 431 18.2.1 虛擬服務器請求缺乏主機信息 432 18.2.2 設法讓虛擬主機托管正常工作 433 18.2.3 HTTP/1.1的Host首部 437 18.3 使網站更可靠 438 18.3.1 鏡像的服務器集群 438 18.3.2 內容分發網絡 440 18.3.3 CDN中的反向代理緩存 440 18.3.4 CDN中的代理緩存 440 18.4 讓網站更快 441 18.5 更多信息 441
第19章 發布系統 443 19.1 FrontPage為支持發布而做的服務器擴展 444 19.1.1 FrontPage服務器擴展 444 19.1.2 FrontPage術語表 445 19.1.3 FrontPage的RPC協議 445 19.1.4 FrontPage的安全模型 448 19.2 WebDAV與協作寫作 449 19.2.1 WebDAV的方法 449 19.2.2 WebDAV與XML 450 19.2.3 WebDAV首部集 451 19.2.4 WebDAV的鎖定與防止覆寫 452 19.2.5 LOCK方法 453 19.2.6 UNLOCK方法 456 19.2.7 屬性和元數據 456 19.2.8 PROPFIND方法 457 19.2.9 PROPPATCH方法 459 19.2.10 集合與名字空間管理 460 19.2.11 MKCOL方法 460 19.2.12 DELETE方法 461 19.2.13 COPY與MOVE方法 462 19.2.14 增強的HTTP/1.1方法 465 19.2.15 WebDAV中的版本管理 466 19.2.16 WebDAV的未來發展 466 19.3 更多信息 467
第20章 重定向與負載均衡 469 20.1 為什么要重定向 470 20.2 重定向到何地 471 20.3 重定向協議概覽 471 20.4 通用的重定向方法 474 20.4.1 HTTP重定向 474 20.4.2 DNS重定向 475 20.4.3 任播尋址 480 20.4.4 IP MAC轉發 481 20.4.5 IP地址轉發 482 20.4.6 網元控制協議 484 20.5 代理的重定向方法 485 20.5.1 顯式瀏覽器配置 485 20.5.2 代理自動配置 485 20.5.3 Web代理自動發現協議 487 20.6 緩存重定向方法 492 20.7 因特網緩存協議 496 20.8 緩存陣列路由協議 497 20.9 超文本緩存協議 500 20.9.1 HTCP認證 502 20.9.2 設置緩存策略 503 20.10 更多信息 504
第21章 日志記錄與使用情況跟蹤 505 21.1 記錄內容 506 21.2 日志格式 507 21.2.1 常見日志格式 507 21.2.2 組合日志格式 508 21.2.3 網景擴展日志格式 509 21.2.4 網景擴展2日志格式 510 21.2.5 Squid代理日志格式 512 21.3 命中率測量 515 21.3.1 概述 515 21.3.2 Meter首部 516 21.4 關于隱私的考慮 517 21.5 更多信息 518
第六部分 附錄 附錄A URI方案 521 附錄B HTTP狀態碼 529 附錄C HTTP首部參考 533 附錄D MIME類型 557 附錄E Base-64編碼 603 附錄F 摘要認證 607 附錄G 語言標記 615 附錄H MIME字符集注冊表 641
索引 661 |
序: |
|