《圖解HTTP》對互聯(lián)網(wǎng)基盤——HTTP協(xié)議進行了全面系統(tǒng)的介紹。作者由HTTP協(xié)議的發(fā)展歷史娓娓道來,嚴謹細致地剖析了HTTP協(xié)議的結(jié)構(gòu),列舉諸多常見通信場景及實戰(zhàn)案例,最后延伸到Web安全、最新技術(shù)動向等方面!秷D解HTTP》的特色為在講解的同時,輔以大量生動形象的通信圖例,更好地幫助讀者深刻理解HTTP通信過程中客戶端與服務(wù)器之間的交互情況。讀者可通過《圖解HTTP》快速了解并掌握HTTP協(xié)議的基礎(chǔ),前端工程師分析抓包數(shù)據(jù),后端工程師實現(xiàn)REST API、實現(xiàn)自己的HTTP服務(wù)器等過程中所需的HTTP相關(guān)知識點本書均有介紹。
《圖解HTTP》適合Web開發(fā)工程師,以及對HTTP協(xié)議感興趣的各層次讀者。
172張圖解輕松入門 從基礎(chǔ)知識到最新動向,一本書掌握HTTP協(xié)議 Web前端開發(fā)者必備,從基礎(chǔ)知識到最新動向一網(wǎng)打盡 本書前半部分由HTTP的成長發(fā)展史娓娓道來,基于HTTP 1.1 標準講解通信過程,包括HTTP方法、協(xié)議格式、報文結(jié)構(gòu)、首部字段、狀態(tài)碼等的具體含義,還分別講解HTTP通信過程中代理、網(wǎng)關(guān)、隧道等的作用。接著介紹SPDY、WebSocket、WebDAV等HTTP的擴展功能。作者還從細節(jié)方面舉例,讓讀者更好地理解何為無狀態(tài)(stateless)、301和302重定向的區(qū)別在哪、緩存機制,等等。本書后半部分的重心放在Web安全上,涵蓋HTTPS、SSL、證書認證、加密機制、Web攻擊手段等內(nèi)容。
作者簡介
上野 宣
OWASP 日本分會會長,TRICORDER株式會社董事長。
主要從事安全咨詢、風險評估、信息安全教育等工作。著有《今晚我們一起學(xué)習(xí)郵件協(xié)議》(今夜わかるメールプロトコル)、《今晚我們一起學(xué)習(xí)TCP/IP》(今夜わかるTCP/IP)、《今晚我們一起學(xué)習(xí)HTTP》(今夜わかるHTTP)。擔任The Tangled Web:A Guide to Securing Modern Web Application日文版的審校工作。
譯者簡介
于均良
上海交通大學(xué)碩士,高級軟件工程師,馬拉松跑者,四點網(wǎng)創(chuàng)始人。
第1章 了解Web及網(wǎng)絡(luò)基礎(chǔ)
1.1 使用HTTP協(xié)議訪問Web
1.2 HTTP的誕生
1.2.1 為知識共享而規(guī)劃Web
1.2.2 Web成長時代
1.2.3 駐足不前的HTTP
1.3 網(wǎng)絡(luò)基礎(chǔ)TCP/IP
1.3.1 TCP/IP協(xié)議族
1.3.2 TCP/IP的分層管理
1.3.3 TCP/IP通信傳輸流
1.4 與HTTP關(guān)系密切的協(xié)議:IP、TCP和DNS
1.4.1 負責傳輸?shù)腎P協(xié)議
1.4.2 確保可靠性的TCP協(xié)議
1.5 負責域名解析的DNS服務(wù)
1.6 各種協(xié)議與HTTP協(xié)議的關(guān)系 第1章 了解Web及網(wǎng)絡(luò)基礎(chǔ)
1.1 使用HTTP協(xié)議訪問Web
1.2 HTTP的誕生
1.2.1 為知識共享而規(guī)劃Web
1.2.2 Web成長時代
1.2.3 駐足不前的HTTP
1.3 網(wǎng)絡(luò)基礎(chǔ)TCP/IP
1.3.1 TCP/IP協(xié)議族
1.3.2 TCP/IP的分層管理
1.3.3 TCP/IP通信傳輸流
1.4 與HTTP關(guān)系密切的協(xié)議:IP、TCP和DNS
1.4.1 負責傳輸?shù)腎P協(xié)議
1.4.2 確保可靠性的TCP協(xié)議
1.5 負責域名解析的DNS服務(wù)
1.6 各種協(xié)議與HTTP協(xié)議的關(guān)系
1.7 URI和URL
1.7.1 統(tǒng)一資源標識符
1.7.2 URI格式
第2章 簡單的HTTP協(xié)議
2.1 HTTP協(xié)議用于客戶端和服務(wù)器端之間的通信
2.2 通過請求和響應(yīng)的交換達成通信
2.3 HTTP是不保存狀態(tài)的協(xié)議
2.4 請求URI定位資源
2.5 告知服務(wù)器意圖的HTTP方法
2.6 使用方法下達命令
2.7 持久連接節(jié)省通信量
2.7.1 持久連接
2.7.2 管線化
2.8 使用Cookie的狀態(tài)管理
第3章 HTTP報文內(nèi)的HTTP信息
3.1 HTTP報文
3.2 請求報文及響應(yīng)報文的結(jié)構(gòu)
3.3 編碼提升傳輸速率
3.3.1 報文主體和實體主體的差異
3.3.2 壓縮傳輸?shù)膬?nèi)容編碼
3.3.3 分割發(fā)送的分塊傳輸編碼
3.4 發(fā)送多種數(shù)據(jù)的多部分對象集合
3.5 獲取部分內(nèi)容的范圍請求
3.6 內(nèi)容協(xié)商返回最合適的內(nèi)容
第4章 返回結(jié)果的HTTP狀態(tài)碼
4.1 狀態(tài)碼告知從服務(wù)器端返回的請求結(jié)果
4.2 2XX成功
4.2.1 200 OK
4.2.2 204 No Content
4.2.3 206 Partial Content
4.3 3XX重定向
4.3.1 301 Moved Permanently
4.3.2 302 Found
4.3.3 303 See Other
4.3.4 304 Not Modified
4.3.5 307 Temporary Redirect
4.4 4XX客戶端錯誤
4.4.1 400 Bad Request
4.4.2 401 Unauthorized
4.4.3 403 Forbidden
4.4.4 404 Not Found
4.5 5XX服務(wù)器錯誤
4.5.1 500 Internal Server Error
4.5.2 503 Service Unavailable
第5章 與HTTP協(xié)作的Web服務(wù)器
5.1 用單臺虛擬主機實現(xiàn)多個域名
5.2 通信數(shù)據(jù)轉(zhuǎn)發(fā)程序:代理、網(wǎng)關(guān)、隧道
5.2.1 代理
5.2.2 網(wǎng)關(guān)
5.2.3 隧道
5.3 保存資源的緩存
5.3.1 緩存的有效期限
5.3.2 客戶端的緩存
第6章 HTTP首部
6.1 HTTP報文首部
6.2 HTTP首部字段
6.2.1 HTTP首部字段傳遞重要信息
6.2.2 HTTP首部字段結(jié)構(gòu)
6.2.3 4種HTTP首部字段類型
6.2.4 HTTP/1.1首部字段一覽
6.2.5 非HTTP/1.1首部字段
6.2.6 End-to-end首部和Hop-by-hop首部
6.3 HTTP/1.1通用首部字段
6.3.1 Cache-Control
6.3.2 Connection
6.3.3 Date
6.3.4 Pragma
6.3.5 Trailer
6.3.6 Transfer-Encoding
6.3.7 Upgrade
6.3.8 Via
6.3.9 Warning
6.4 請求首部字段
6.4.1 Accept
6.4.2 Accept-Charset
6.4.3 Accept-Encoding
6.4.4 Accept-Language
6.4.5 Authorization
6.4.6 Expect
6.4.7 From
6.4.8 Host
6.4.9 If-Match
6.4.10 If-Modified-Since
6.4.11 If-None-Match
6.4.12 If-Range
6.4.13 If-Unmodified-Since
6.4.14 Max-Forwards
6.4.15 Proxy-Authorization
6.4.16 Range
6.4.17 Referer
6.4.18 TE
6.4.19 User-Agent
6.5 響應(yīng)首部字段
6.5.1 Accept-Ranges
6.5.2 Age
6.5.3 ETag
6.5.4 Location
6.5.5 Proxy-Authenticate
6.5.6 Retry-After
6.5.7 Server
6.5.8 Vary
6.5.9 WWW-Authenticate
6.6 實體首部字段
6.6.1 Allow
6.6.2 Content-Encoding
6.6.3 Content-Language
6.6.4 Content-Length
6.6.5 Content-Location
6.6.6 Content-MD5
6.6.7 Content-Range
6.6.8 Content-Type
6.6.9 Expires
6.6.10 Last-Modified
6.7 為Cookie服務(wù)的首部字段
6.7.1 Set-Cookie
6.7.2 Cookie
6.8 其他首部字段
6.8.1 X-Frame-Options
6.8.2 X-XSS-Protection
6.8.3 DNT
6.8.4 P3P
第7章 確保Web安全的HTTPS
7.1 HTTP的缺點
7.1.1 通信使用明文可能會被竊聽
7.1.2 不驗證通信方的身份就可能遭遇偽裝
7.1.3 無法證明報文完整性,可能已遭篡改
7.2 HTTP+加密+認證+完整性保護=HTTPS
7.2.1 HTTP加上加密處理和認證以及完整性保護后即是HTTPS
7.2.2 HTTPS是身披SSL外殼的HTTP
7.2.3 相互交換密鑰的公開密鑰加密技術(shù)
7.2.4 證明公開密鑰正確性的證書
7.2.5 HTTPS的安全通信機制
第8章 確認訪問用戶身份的認證
8.1 何為認證
8.2 BASIC認證
8.3 DIGEST認證
8.4 SSL客戶端認證
8.4.1 SSL客戶端認證的認證步驟
8.4.2 SSL客戶端認證采用雙因素認證
8.4.3 SSL客戶端認證必要的費用
8.5 基于表單認證
8.5.1 認證多半為基于表單認證
8.5.2 Session管理及Cookie應(yīng)用
第9章 基于HTTP的功能追加協(xié)議
9.1 基于HTTP的協(xié)議
9.2 消除HTTP瓶頸的SPDY
9.2.1 HTTP的瓶頸
9.2.2 SPDY的設(shè)計與功能
9.2.3 SPDY消除Web瓶頸了嗎
9.3 使用瀏覽器進行全雙工通信的WebSocket
9.3.1 WebSocket的設(shè)計與功能
9.3.2 WebSocket協(xié)議
9.4 期盼已久的HTTP/2.0
9.5 Web服務(wù)器管理文件的WebDAV
9.5.1 擴展HTTP/1.1的WebDAV
9.5.2 WebDAV內(nèi)新增的方法及狀態(tài)碼
第10章 構(gòu)建Web內(nèi)容的技術(shù)
10.1 HTML
10.1.1 Web頁面幾乎全由HTML構(gòu)建
10.1.2 HTML的版本
10.1.3 設(shè)計應(yīng)用CSS
10.2 動態(tài)HTML
10.2.1 讓W(xué)eb頁面動起來的動態(tài)HTML
10.2.2 更易控制HTML的DOM
10.3 Web應(yīng)用
10.3.1 通過Web提供功能的Web應(yīng)用
10.3.2 與Web服務(wù)器及程序協(xié)作的CGI
10.3.3 因Java而普及的Servlet
10.4 數(shù)據(jù)發(fā)布的格式及語言
10.4.1 可擴展標記語言
10.4.2 發(fā)布更新信息的RSS/Atom
10.4.3 JavaScript衍生的輕量級易用JSON
第11章 Web的攻擊技術(shù)
11.1 針對Web的攻擊技術(shù)
11.1.1 HTTP不具備必要的安全功能
11.1.2 在客戶端即可篡改請求
11.1.3 針對Web應(yīng)用的攻擊模式
11.2 因輸出值轉(zhuǎn)義不完全引發(fā)的安全漏洞
11.2.1 跨站腳本攻擊
11.2.2 SQL注入攻擊
11.2.3 OS命令注入攻擊
11.2.4 HTTP首部注入攻擊
11.2.5 郵件首部注入攻擊
11.2.6 目錄遍歷攻擊
11.2.7 遠程文件包含漏洞
11.3 因設(shè)置或設(shè)計上的缺陷引發(fā)的安全漏洞
11.3.1 強制瀏覽
11.3.2 不正確的錯誤消息處理
11.3.3 開放重定向
11.4 因會話管理疏忽引發(fā)的安全漏洞
11.4.1 會話劫持
11.4.2 會話固定攻擊
11.4.3 跨站點請求偽造
11.5 其他安全漏洞
11.5.1 密碼破解
11.5.2 點擊劫持
11.5.3 DoS攻擊
11.5.4 后門程序