《圖解HTTP》對(duì)互聯(lián)網(wǎng)基盤——HTTP協(xié)議進(jìn)行了全面系統(tǒng)的介紹。作者由HTTP協(xié)議的發(fā)展歷史娓娓道來,嚴(yán)謹(jǐn)細(xì)致地剖析了HTTP協(xié)議的結(jié)構(gòu),列舉諸多常見通信場景及實(shí)戰(zhàn)案例,最后延伸到Web安全、最新技術(shù)動(dòng)向等方面。《圖解HTTP》的特色為在講解的同時(shí),輔以大量生動(dòng)形象的通信圖例,更好地幫助讀者深刻理解HTTP通信過程中客戶端與服務(wù)器之間的交互情況。讀者可通過《圖解HTTP》快速了解并掌握HTTP協(xié)議的基礎(chǔ),前端工程師分析抓包數(shù)據(jù),后端工程師實(shí)現(xiàn)REST API、實(shí)現(xiàn)自己的HTTP服務(wù)器等過程中所需的HTTP相關(guān)知識(shí)點(diǎn)本書均有介紹。
《圖解HTTP》適合Web開發(fā)工程師,以及對(duì)HTTP協(xié)議感興趣的各層次讀者。
172張圖解輕松入門 從基礎(chǔ)知識(shí)到最新動(dòng)向,一本書掌握HTTP協(xié)議 Web前端開發(fā)者必備,從基礎(chǔ)知識(shí)到最新動(dòng)向一網(wǎng)打盡 本書前半部分由HTTP的成長發(fā)展史娓娓道來,基于HTTP 1.1 標(biāo)準(zhǔn)講解通信過程,包括HTTP方法、協(xié)議格式、報(bào)文結(jié)構(gòu)、首部字段、狀態(tài)碼等的具體含義,還分別講解HTTP通信過程中代理、網(wǎng)關(guān)、隧道等的作用。接著介紹SPDY、WebSocket、WebDAV等HTTP的擴(kuò)展功能。作者還從細(xì)節(jié)方面舉例,讓讀者更好地理解何為無狀態(tài)(stateless)、301和302重定向的區(qū)別在哪、緩存機(jī)制,等等。本書后半部分的重心放在Web安全上,涵蓋HTTPS、SSL、證書認(rèn)證、加密機(jī)制、Web攻擊手段等內(nèi)容。
作者簡介
上野 宣
OWASP 日本分會(huì)會(huì)長,TRICORDER株式會(huì)社董事長。
主要從事安全咨詢、風(fēng)險(xiǎn)評(píng)估、信息安全教育等工作。著有《今晚我們一起學(xué)習(xí)郵件協(xié)議》(今夜わかるメールプロトコル)、《今晚我們一起學(xué)習(xí)TCP/IP》(今夜わかるTCP/IP)、《今晚我們一起學(xué)習(xí)HTTP》(今夜わかるHTTP)。擔(dān)任The Tangled Web:A Guide to Securing Modern Web Application日文版的審校工作。
譯者簡介
于均良
上海交通大學(xué)碩士,高級(jí)軟件工程師,馬拉松跑者,四點(diǎn)網(wǎng)創(chuàng)始人。
第1章 了解Web及網(wǎng)絡(luò)基礎(chǔ)
1.1 使用HTTP協(xié)議訪問Web
1.2 HTTP的誕生
1.2.1 為知識(shí)共享而規(guī)劃Web
1.2.2 Web成長時(shí)代
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 負(fù)責(zé)傳輸?shù)腎P協(xié)議
1.4.2 確保可靠性的TCP協(xié)議
1.5 負(fù)責(zé)域名解析的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 為知識(shí)共享而規(guī)劃Web
1.2.2 Web成長時(shí)代
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 負(fù)責(zé)傳輸?shù)腎P協(xié)議
1.4.2 確?煽啃缘腡CP協(xié)議
1.5 負(fù)責(zé)域名解析的DNS服務(wù)
1.6 各種協(xié)議與HTTP協(xié)議的關(guān)系
1.7 URI和URL
1.7.1 統(tǒng)一資源標(biāo)識(shí)符
1.7.2 URI格式
第2章 簡單的HTTP協(xié)議
2.1 HTTP協(xié)議用于客戶端和服務(wù)器端之間的通信
2.2 通過請(qǐng)求和響應(yīng)的交換達(dá)成通信
2.3 HTTP是不保存狀態(tài)的協(xié)議
2.4 請(qǐng)求URI定位資源
2.5 告知服務(wù)器意圖的HTTP方法
2.6 使用方法下達(dá)命令
2.7 持久連接節(jié)省通信量
2.7.1 持久連接
2.7.2 管線化
2.8 使用Cookie的狀態(tài)管理
第3章 HTTP報(bào)文內(nèi)的HTTP信息
3.1 HTTP報(bào)文
3.2 請(qǐng)求報(bào)文及響應(yīng)報(bào)文的結(jié)構(gòu)
3.3 編碼提升傳輸速率
3.3.1 報(bào)文主體和實(shí)體主體的差異
3.3.2 壓縮傳輸?shù)膬?nèi)容編碼
3.3.3 分割發(fā)送的分塊傳輸編碼
3.4 發(fā)送多種數(shù)據(jù)的多部分對(duì)象集合
3.5 獲取部分內(nèi)容的范圍請(qǐng)求
3.6 內(nèi)容協(xié)商返回最合適的內(nèi)容
第4章 返回結(jié)果的HTTP狀態(tài)碼
4.1 狀態(tài)碼告知從服務(wù)器端返回的請(qǐng)求結(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客戶端錯(cuò)誤
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ù)器錯(cuò)誤
4.5.1 500 Internal Server Error
4.5.2 503 Service Unavailable
第5章 與HTTP協(xié)作的Web服務(wù)器
5.1 用單臺(tái)虛擬主機(jī)實(shí)現(xiàn)多個(gè)域名
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報(bào)文首部
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 請(qǐng)求首部字段
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 實(shí)體首部字段
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的缺點(diǎn)
7.1.1 通信使用明文可能會(huì)被竊聽
7.1.2 不驗(yàn)證通信方的身份就可能遭遇偽裝
7.1.3 無法證明報(bào)文完整性,可能已遭篡改
7.2 HTTP+加密+認(rèn)證+完整性保護(hù)=HTTPS
7.2.1 HTTP加上加密處理和認(rèn)證以及完整性保護(hù)后即是HTTPS
7.2.2 HTTPS是身披SSL外殼的HTTP
7.2.3 相互交換密鑰的公開密鑰加密技術(shù)
7.2.4 證明公開密鑰正確性的證書
7.2.5 HTTPS的安全通信機(jī)制
第8章 確認(rèn)訪問用戶身份的認(rèn)證
8.1 何為認(rèn)證
8.2 BASIC認(rèn)證
8.3 DIGEST認(rèn)證
8.4 SSL客戶端認(rèn)證
8.4.1 SSL客戶端認(rèn)證的認(rèn)證步驟
8.4.2 SSL客戶端認(rèn)證采用雙因素認(rèn)證
8.4.3 SSL客戶端認(rèn)證必要的費(fèi)用
8.5 基于表單認(rèn)證
8.5.1 認(rèn)證多半為基于表單認(rèn)證
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è)計(jì)與功能
9.2.3 SPDY消除Web瓶頸了嗎
9.3 使用瀏覽器進(jìn)行全雙工通信的WebSocket
9.3.1 WebSocket的設(shè)計(jì)與功能
9.3.2 WebSocket協(xié)議
9.4 期盼已久的HTTP/2.0
9.5 Web服務(wù)器管理文件的WebDAV
9.5.1 擴(kuò)展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è)計(jì)應(yīng)用CSS
10.2 動(dòng)態(tài)HTML
10.2.1 讓W(xué)eb頁面動(dòng)起來的動(dòng)態(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 可擴(kuò)展標(biāo)記語言
10.4.2 發(fā)布更新信息的RSS/Atom
10.4.3 JavaScript衍生的輕量級(jí)易用JSON
第11章 Web的攻擊技術(shù)
11.1 針對(duì)Web的攻擊技術(shù)
11.1.1 HTTP不具備必要的安全功能
11.1.2 在客戶端即可篡改請(qǐng)求
11.1.3 針對(duì)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 遠(yuǎn)程文件包含漏洞
11.3 因設(shè)置或設(shè)計(jì)上的缺陷引發(fā)的安全漏洞
11.3.1 強(qiáng)制瀏覽
11.3.2 不正確的錯(cuò)誤消息處理
11.3.3 開放重定向
11.4 因會(huì)話管理疏忽引發(fā)的安全漏洞
11.4.1 會(huì)話劫持
11.4.2 會(huì)話固定攻擊
11.4.3 跨站點(diǎn)請(qǐng)求偽造
11.5 其他安全漏洞
11.5.1 密碼破解
11.5.2 點(diǎn)擊劫持
11.5.3 DoS攻擊
11.5.4 后門程序