透視HTTP協議-羅劍鋒(Chrono)-極客時間-返現優惠

wuwu發表於2019-05-29

極客時間出品的《透視HTTP協議》由羅劍鋒(Chrono)所作,羅劍鋒(Chrono)是奇虎360技術專家,Nginx/OpenResty開源專案貢獻者。本課深入理解HTTP協議本質與應用。用我的邀請購買,還會額外返現12元給你噢。

透視HTTP協議 封面圖

課程介紹

HTTP是一個在計算機世界裡專門在兩點之間傳輸文字、圖片、音訊、視訊等超文字資料的約定和規範。簡單來說,如果你不懂HTTP協議,那就相當於是個只有“半桶水”的程式設計師。

  • HTTP協議看起來偏理論,但是實踐中卻總是有它的影子。比如:
  • 用Nginx搭建Web伺服器,照著網上的文章配好了,但裡面那麼多的指令,什麼keepalive、rewrite、proxy_pass都是怎麼回事?為什麼要這麼配置?
  • 用Python寫爬蟲,URI、URL“傻傻分不清”,有時裡面還會加一些奇怪的字元,怎麼處理才好?
  • 都說HTTP快取很有用,可以大幅度提升系統效能,可它是怎麼做到的?又應該用在何時何地?
  • HTTP和HTTPS是什麼關係?還經常聽說有SSL\/TLS\/SNI\/OCSP\/ALPN……這麼多稀奇古怪的縮寫,頭都大了,實在是搞不懂。
  • 據說又出了新的HTTP\/2、HTTP\/3,是不是要考慮學習一下呢?

如果這些問題你都深有感受,那麼“透視HTTP協議”專欄就是專門為你打造的。

在這個專欄中,Chrono會帶你撥開HTTP紛繁複雜的表象,帶你重新梳理出簡潔明瞭的知識框架,新手可以由淺入深、系統學習,老手可以溫故知新、查漏補缺。

Chrono長期從事Web後臺伺服器的研發工作,深知HTTP的邏輯、基本原理與應用。在這個專欄中,他會帶你一起,花最少的時間,用最少的精力,掌握最多、最全面、最系統的HTTP相關知識。

透視HTTP協議專欄作者

透視HTTP協議 羅劍鋒

羅劍鋒,網名“Chrono”。畢業於北京理工大學計算機專業, 奇虎360技術專家,Nginx\/OpenResty開源專案貢獻者,熟悉各種網路應用協議,專注於C\/C++、Linux、高效能程式設計等領域,著有《C++11\/14高階程式設計》《Boost程式庫完全開發指南》《Nginx完全開發指南》《OpenResty完全開發指南》等暢銷書。

你好,我是羅劍鋒,一名埋頭於前線,辛勤“耕耘”了十餘載的資深“碼農”。

當極客時間的編輯聯絡我,要我寫 HTTP 專欄的時候,我的第一反應是:“HTTP 協議好簡單的,有這個必要嗎?”

你可能也會有同樣的想法:“HTTP 不就是請求 / 響應、GET/POST、Header/Body 嗎?網路上的資料一抓一大把,有什麼問題搜一下就是了。”

不瞞你說,我當時就是這麼想的,在之前的工作中也是一直這麼做的,而且一直“感覺良好”,覺得 HTTP 就是這個樣子,沒有什麼特別的地方,沒有什麼值得講的。

但在編輯的一再堅持下,我“勉為其難”接下了這個任務。然後做了一個小範圍的“調查”,問一些周圍的同事,各個領域的都有,比如產品、開發、運維、測試、前端、後端、手機端……想看看他們有什麼意見。

出乎我的意料,他們無一例外都對這個“HTTP 專欄”有很強烈的需求,想好好“補補課”,系統地學習瞭解 HTTP,這其中甚至還包括有七、八年(甚至更多)工作經驗的老手。

這不禁讓我陷入了思考,為什麼如此“簡單”的協議卻還有這麼多的人想要學呢?

我想,一個原因可能是 HTTP 協議“太常見”了。就像現實中的水和空氣一樣,如此重要卻又如此普遍,普遍到我們幾乎忽視了它的存在。真的很像那句俗語所說:“魚總是最後看見水的”,但水對魚的生存卻又是至關重要。

我認真回憶了一下這些年的工作經歷,這才發現 HTTP 只是表面上顯得簡單,而底層的執行機制、工作原理絕不簡單,可以說是非常地複雜。只是我們平常總是“KPI 優先”,網上抓到一個解決方法用過就完事了,沒有去深究裡面的要點和細節。

下面的幾個場景,都是我周圍同事的實際感受,你是否也在工作中遇到過這樣的困惑呢?你能把它們都解釋清楚嗎?

  • 用 Nginx 搭建 Web 伺服器,照著網上的文章配好了,但裡面那麼多的指令,什麼 keepalive、rewrite、proxy_pass 都是怎麼回事?為什麼要這麼配置?
  • 用 Python 寫爬蟲,URI、URL“傻傻分不清”,有時裡面還會加一些奇怪的字元,怎麼處理才好?
  • 都說 HTTP 快取很有用,可以大幅度提升系統效能,可它是怎麼做到的?又應該用在何時何地?
  • HTTP 和 HTTPS 是什麼關係?還經常聽說有 SSL/TLS/SNI/OCSP/ALPN……這麼多稀奇古怪的縮寫,頭都大了,實在是搞不懂。

其實這些問題也並不是什麼新問題,把關鍵字貼上進搜尋欄,再點一下按鈕,搜尋引擎馬上就能找出幾十萬個相關的頁面。但看完第一頁的前幾個連結後,通常還是有種“懵懵懂懂”“似懂非懂”的感覺,覺得說的對,又不全對,和自己的思路總是不夠“Match”。

不過大多數情況下你可能都沒有時間細想,優先目標是把手頭的工作“對付過去”。長此以來,你對 HTTP 的認識也可能僅限於這樣的“知其然,而不知其所以然”,實際情況就是 HTTP 天天用,時時用,但想認真、系統地學習一下,梳理出自己的知識體系,經常會發現無從下手。

我把這種 HTTP 學習的現狀歸納為三點:正式資料“少”、網上資料“雜”、權威資料“難”

這三個問題就像是“三座大山”,阻礙了像你這樣的很多有心人去學習、瞭解 HTTP 協議。那麼,怎麼才能更好地學習 HTTP 呢?

我為這個專欄定了一個基調:“要有廣度,但更要有深度”。目標是成為含金量最高的 HTTP 學習資料,新手可以由淺入深、系統學習,老手可以溫故知新、查缺補漏,讓你花最少的時間,用最少的精力,掌握最多、最全面、最系統的知識。

由於 HTTP 應用得非常廣泛,幾乎涉及到所有的領域,所以我會在廣度上從 HTTP 儘量向外擴充套件,不只講協議本身,與它相關的 TCP/IP、DNS、SSL/TLS、Web Server 等都會講到,而且會把它們打通串聯在一起,形成知識鏈,讓你知道它們之間是怎麼聯絡、怎麼執行的。

專欄文章的深度上我也是下足了功夫,全部基於最新的 RFC 標準文件,再結合我自己多年的實踐體會,力求講清講透,能讓你看了以後有豁然開朗的感覺。

 

《透視HTTP協議》專欄模組

專欄共計40講,分為7大模組。

破冰篇

破冰篇會帶你從0開始帶你建立並梳理HTTP知識框架,打通相關知識點,串聯成知識鏈,讓你知道它們之間是怎麼聯絡、怎麼執行的。手把手帶你搭建HTTP實驗環境,為進入正式學習做好準備。

基礎篇

基礎篇將帶你快速進入狀態,從一個“最小化”的HTTP實驗環境出發,深入理解HTTP工作的全過程;進而講解報文、請求方法、網址、響應狀態碼、HTTP的特點和優缺點。帶你打好HTTP的實踐基礎。

進階篇

進階篇將為你詳細解析HTTP裡的各種頭欄位,包括定義、功能、使用方式、注意事項等等,幫助你理解每一個常用、實用的知識點,讓你的HTTP實踐能力成功進階。

安全篇

網際網路中的安全不可忽視,安全篇會告訴你為什麼要有HTTPS?SSL\/TLS又是什麼?並深入淺出地為你講解讓HTTP協議固若金湯的根本知識,包括對稱加密、非對稱加密、數字簽名與證照。此外,這一模組還會為你解析TLS1.2、TLS1.3的特性,並講解HTTPS的優化方法。

飛翔篇

隨著時代的發展,最初的HTTP已經不能滿足時代的需要。飛翔篇中的內容為你深入闡釋HTTP\/2和HTTP\/3的優勢並補充實踐內容。

探索篇

HTTP的應用廣泛,探索篇中的內容不只侷限在HTTP本身,還會講到與它相關的Nginx、OpenResty、WAF、CDN、WebSocket等等。

總結篇

這一模組會通過分析HTTP效能優化,為整個專欄做個總結,內容貫穿全鏈路分析、硬體軟體、內部外部、前端後端等多個方面,整體梳理協議相關知識。

《透視HTTP協議》專欄詳細目錄

開篇詞  To Be a HTTP Hero

破冰篇

時勢造英雄:HTTP協議的前世今生

HTTP是什麼? HTTP又不是什麼?

HTTP世界全覽(上):與HTTP相關的各種概念

HTTP世界全覽(下):與HTTP相關的各種協議

“七層”和“四層”是什麼? “五層”“六層”哪去了?

域名裡有哪些門道?

自己動手,搭建HTTP實驗環境

基礎篇

鍵入網址後按下回車,後面究竟發生了什麼?

HTTP報文是什麼樣子的?

應該如何理解謂求方法?

你能寫出正確的網址嗎?

響應狀態碼該怎麼用?

HTTP協議有哪些特點?

HTTP有哪些優點和缺點?

進階篇

海納百川:HTTP的實體資料

把大象裝進冰箱:HTTP傳輸大檔案的方法

排隊也要講效率:HTTP的連線管理

四通八達:HTTP重定向和跳轉

讓我知道你是誰:HTTP的Cookie機制

生鮮速遞:HTTP的快取控制

良心中間商:HTTP的代理服務

冷鏈週轉:HTTP的快取代理

安全篇

HTTPS是什麼? SSL/TLS又是什麼?

固若金湯的根本(上):對稱加密與非對稱加密

固若金湯的根本(下):數字簽名與證照

信任始於握手:TLS1.2連線過程解析

更好更快的握手:TLS1.3特性解析

連線太慢該怎麼辦:HTTPS的優化

我應該遷移到HTTPS嗎?

飛翔篇

時代之風(上):HTTP/2特性概覽

時代之風(下):HTTP/2核心剖析

未來之路:HTTP/3展望

我應該遷移到HTTP/2嗎?

探索篇

Nginx:高效能的Web伺服器

OpenResty:更好的 Nginx

WAF:保護我們的網路服務

CDN:讓網站坐上噴氣飛機

WebSocket:更好的 TCP

總結篇

HTTP效能優化面面觀(上)

HTTP效能優化面面觀(下)

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章