極客時間出品的《Web協議詳解與抓包實戰》由陶輝所作,陶輝是智鏈達CTO,前阿里雲高階技術專家,本門課讓你係統掌握Web協議,高效解決網路難題。
課程亮點
覆蓋全面:內容包含 HTTP/1.1、HTTP/2、WebSocket、TLS/SSL以及TCP/IP等工作中常用的 Web 協議,將各個零散的知識點組織成體系化的內容。
抓包實戰:不光有理論講解,關鍵知識點會配合相應的抓包工具進行演示,幫你更輕鬆地搞懂各種協議的抽象細節,從而在工作中快速定位和解決各種網路疑難雜症。
自頂向下:先從應用層協議講起(HTTP),讓你帶著具體問題去進行有針對性的學習,最後會逐步過渡到底層的 IP 協議,這樣你就能從更高的層面理解Web協議的體系架構。
適用廣泛:無論是前後端工程師、運維測試工程師還是架構師,只要是工作中經常要和網路打交道的技術人員,都可以學習這門課程。
Web協議詳解與抓包實戰講師簡介
陶輝,杭州智鏈達資料有限公司 CTO 兼聯合創始人,著有《深入理解 Nginx:模組開發與架構解析》一書。
10 餘年網際網路一線工作經驗,曾任職於阿里巴巴、華為、騰訊、思科等知名企業,畢業於西安交通大學電腦科學與技術專業,擅長 Linux 下高效能伺服器的開發,以及分散式環境下海量資料儲存的設計開發。
曾在華為中央軟體部參與 iMAP 網管系統的研發,熟悉網路裝置的工作流程;在騰訊QQ空間部門使用自定義的 Qzone 協議傳遞巨量資料,對如何設計出高效能、可擴充套件的應用協議有豐富的實踐經驗;在思科從事 Nginx 服務的研發,對 Web 伺服器如何高效地處理 HTTP 協議有全面的認識;在阿里雲擔任 VPC 網路、ECS管理與儲存系統重構的架構師,對公有云及 IDC 內部網路系統有深刻了解。
課程背景
不少工程師在工作中多多少少都會遇到下面的困惑,比如:
1.AJAX 跨域訪問時總被瀏覽器的同源策略阻止,其背後的原理及符合其設計思想的解決方案是什麼?
2.當我們維護 HTTPS 連線時,如果要優化 TLS\/SSL 的解除安裝效能,應該從哪裡入手?
3.定位問題時,發現本地的 TCP 連線狀態中出現了FIN_WAIT、CLOSE_WAIT 或者 TIME_WAIT,都是什麼原因引起的?應該怎樣解決?
4.想要提升TCP連線的傳輸速度,可伺服器上相關的系統引數多達數十個,究竟該怎麼調整?
你會發現,這些問題其實都和 Web 協議密切相關。無論你是前後端工程師,還是運維測試,如果想面試更高的職位,或者要站在更高的角度去理解技術業務架構,並能在問題出現時快速、高效地解決問題,Web 協議一定是你繞不過去的一道坎。
對Web協議的瞭解和Web抓包工具的熟練使用也是寫Python爬蟲的必備技能。
因此,我們和陶輝老師合作推出了這門課程,旨在幫助你對各種常用 Web 協議有一個系統、深度的理解,在此基礎上你將能夠快速定位和解決工作中的各種網路疑難雜症,同時也為後續進行更復雜、難度更高的分散式系統架構設計等工作打下堅實的基礎。
《Web協議詳解與抓包實戰》課程目錄
第一部分自頂向下解析HTTP/1.1協議
配合 Wireshark 和 Chrome Network 抓包)
課程介紹
內容綜述
瀏覽器發起HTTP請求的典型場景
基於ABNF語義定義的HTTP訊息格式
網路為什麼要分層:〇SI模型與TCP/IP模型
HTTP解決了什麼問題?
評估Web架構的七大關鍵屬性
從五種架構風格推匯出HTTP的REST架構
如何用Chrome的Network皮膚分析HTTP報文
URI的基本格式以及與URL的區別
為什麼要對URI進行編碼?
詳解HTTP的請求行
HTTP的正確響應碼
HTTP的錯誤響應碼
如何管理跨代理伺服器的長短連線?
HTTP訊息在伺服器端的路由
代理伺服器轉發訊息時的相關頭部
請求與響應的上下文
內容協商與資源表述
HTTP包體的傳輸方式
HTML form表單提交時的協議格式
斷點續傳與多執行緒下載是如何做到的?
Cookie與Session的工作原理
瀏覽器為什麼要有同源策略?
如何“合法”地跨域訪問?
條件請求的作用
快取新鮮度的四種計算方式
什麼樣的訊息會被快取?
多種重定向跳轉方式的差異
如何通過HTTP隧道訪問被限制的網路?
網路爬蟲在做些什麼?
HTTP協議的基本認證
如何用Wireshark分析報文?
如何通過DNS協議解析域名?
第二部分WebSocket協議
配合 Wireshark 和 Chrome Network 抓包
Wireshark中如何過濾報文?
WebSocket協議解決了什麼問題?
WebSocket協議的格式
如何從HTTP協議升級到WebSocket協議?
如何在WebSocket會話中傳遞訊息?
保持會話連線的心跳
如何關閉會話?
第三部分HTTP/2協議
配合 Wireshark 和 Chrome Network 抓包
HTTP/2協議有哪些優化與效能提升?
如何使用Wireshark解密TLS/SSL報文?
訊息幀的格式
如何減少HTTP頭部的傳輸消耗?
伺服器端的主動訊息推送
stream的狀態變遷
常見的鉳誤碼
不同請求的優先順序
應用層的流量控制
HTTP/2與谷歌的gRPC框架
七層負載均衡做了些什麼?
第四部分TLS/SSL協議
配合Wireshark抓包
TLS/SSL協議是如何加密的?
對稱加密是什麼?
非對稱加密的奧祕
使用非對稱加密協商出對稱加密的密碼
提升握手階段的效能
第五部分TCP協議
配合 Wireshark 和 tcpdump 抓包
TCP協議解決了哪些問題?
TCP報文的格式
如何用tcpdump在Linux/Unix系統下抓取網路報文?
通過三次握手建立連線有哪些細節?
解決三次握手過慢的fastopen模式
如何防止三次握手中的SYN攻擊?
如何通過滑動視窗來傳遞資料?
為什麼要按MSS把報文分段?
如何避免網路中存在大量過小的報文?
超時與重傳策略
慢啟動與擁塞控制
通過四次握手關閉連線有哪些細節?
TIME_WAIT狀態必須存在嗎?
keepalive如何斷開僵死連線?
針對TCP連線的I0多路複用
四層負載均衡做了些什麼?
第六部分IP協議
配合 Wireshark 和 tcpdump 抓包
網路層在解決什麼問題?
資料鏈路層在解決什麼問題?
路由器與交換機有哪些區別?
IP地址與鏈路層地址的轉換:ARP與RARP協議
IP報文格式
MTU與報文分片
ping與ICMP協議
IP協議選擇路由的流程
IPv4與IPv6協議的區別
從Wireshark報文統計中找規律
課程收穫
深入理解常用 Web 協議
快速定位和解決網路疑難雜症
掌握常見抓包工具及報文分析方法
熟悉 Web 協議的架構和設計原則
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***