爬蟲HTTP和HTTPS協議詳解

爬蟲HTTP和HTTPS協議詳解的圖1

點擊獲取全套爬蟲零基礎學習資料

一、什么是網絡協議

網絡協議,是計算機之間為了實現網絡通信而達成的一種“約定”或者”規則“,有了這種”約定“,不同廠商的生產設備,以及不同操作系統組成的計算機之間,就可以實現通信。

二、HTTP和HTTPS的基本概念

HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

三、HTTP與HTTPS有什么區別?

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,為了保證這些隱私數據能加密傳輸,于是網景公司設計了SSL(Secure Sockets Layer)協議用于對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

四、HTTPS的工作原理

盡管HTTPS并非絕對安全,掌握根證書的機構、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:

  • 使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;

  • HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。

  • HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

  • 谷歌曾在2014年8月份調整搜索引擎算法,并稱“比起同等HTTP網站,采用HTTPS加密的網站在搜索結果中的排名將會更高”。

我們以訪問百度為例:

爬蟲HTTP和HTTPS協議詳解的圖2

五、HTTPS優點:

  • 支持客戶/服務器模式。

  • 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

  • 靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

  • 無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。

  • 無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

六、HTTPS缺點

雖然說HTTPS有很大的優勢,但其相對來說,還是存在不足之處的:

  • HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;

  • HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗,甚至已有的安全措施也會因此而受到影響;

  • SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用。

  • SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。

  • HTTPS協議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用。最關鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。

七、URI和URL的區別

HTTP使用統一資源標識符(Uniform Resource Identifier)來傳輸數據和建立連接。

URI:Uniform Resource Identifier 統一資源標識符。

URL:Uniform Resource Location 統一資源定位符。

URI 是用來標示 一個具體的資源,我們可以通過 URI 知道一個資源是什么,是一個抽象的相對概念。

URL 則是用來定位具體的資源的,標示了一個具體的資源位置。屬于URI的一個子集,算是URI在的具體實現方式互聯網上的每個文件都有一個唯一的URL。

八、HTTP協議響應請求

HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文

HTTP請求由三部分組成,分別是:請求行、消息報頭、請求正文

HTTP消息報頭包括普通報頭、請求報頭、響應報頭、實體報頭。

每一個報頭域都是由名字+“:”+空格+值 組成,消息報頭域的名字是大小寫無關的。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP