第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

HTTP 協(xié)議通信基原理

HTTP 是我們進行爬蟲的一個基礎(chǔ)之一,我們通過 HTTT 協(xié)議才能順利爬取到 HTML 里面的內(nèi)容,HTTP 相當(dāng)于是一條道路,HTML 等網(wǎng)頁是道路的終點,我們必須遵守 HTTP 的交通規(guī)則,才能高效的在這條道路上運輸數(shù)據(jù)。

1. HTTP 的基本概念

Http(超文本傳輸協(xié)議) 是一種客戶端-服務(wù)端模型,使用超媒體文檔進行傳輸?shù)?,簡單的,無狀態(tài)的,無連接的,可擴展的應(yīng)用層協(xié)議。

下面,我們一一來分析上述定義的幾個概念。

1.1 客戶端-服務(wù)端模型:

客戶端,是指發(fā)起請求的一方。也就是瀏覽器,或者指爬蟲程序。通過發(fā)起請求,來獲取想要的網(wǎng)頁。

服務(wù)端,請求的響應(yīng)端,是 web 服務(wù)端。web 服務(wù),是一個虛擬意思上的機器的概念??梢允且粋€計算機集群,也可以是一個軟件或者程序。

客戶端,通過發(fā)送一個請求給服務(wù)端,然后進行等待。服務(wù)端按照客戶端的請求,返回客戶端需要的數(shù)據(jù)。這個過程,我們稱之為經(jīng)典的客戶端——服務(wù)端模型。

1.2 超文本文檔:

一個網(wǎng)頁,其實就是一個超文本文檔。里面不僅包含了基本的文本信息和圖片視頻信息,也包含了豐富的超鏈接,用戶可以通過點擊超鏈接,來進行互聯(lián)網(wǎng)的沖浪。

1.3 簡單

指的是 HTTP 報文設(shè)計的簡單易懂,對新手很友好,很容易上手,降低了學(xué)習(xí)門檻。

1.4 無狀態(tài)

是指在同一個連接中,不同的請求之間是沒有聯(lián)系的,這次的請求無法知道上次請求的上下文信息。但是,HTTP 又是有會話的,也就是說,我們可以通過 Cookies 來解決不同請求的上下文信息共享。Cookie 的具體內(nèi)容,我們會在后面的章節(jié)進行描述。

1.5 無連接

連接是又控制層控制的,無連接并不是指 HTTP 不需要控制層的連接,而是指每次連接指處理一次請求,請求結(jié)束,即端口連接。這樣設(shè)計的目的,是減少開銷,提高效率。因為,TCP 控制層的連接會消耗大量的系統(tǒng)資源。

1.6 可擴展

指的是 HTTP 的 Headers 部分比較容易擴展。只需要在頭部中加入擴展的新功能,就可以很方便的實現(xiàn)擴展。

2. HTTP簡單的工程流程

假如我們在瀏覽器輸入慕課網(wǎng)地址:http://idcbgp.cn/

HTTP 的工作流程如下:

  1. 首先需要傳輸層建立連接,這個是 HTTP 的運作的基礎(chǔ)之一,因為 HTTP 是應(yīng)用層,它是建立在傳輸層之上的。
  2. 然后發(fā)送一個 HTTP 的請求報文如下:
GET / HTTP/1.1
Host: idcbgp.cn
Connection: keep-alive
Cache-Control: max-age=0
...

  1. 服務(wù)端會返回一段報文信息如下:
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=UTF-8
Content-Length: 49930
Connection: keep-alive
...

  1. 瀏覽器渲染服務(wù)器返回的信息,并關(guān)閉連接或者重用之前的連接。

以上就是 HTTP 的基本工作原理。關(guān)于請求與響應(yīng)的具體解釋,我們下一個小節(jié)會深入講解。

3. 小結(jié)

這一小節(jié),我們講解了 HTTP 的基本概念,熟悉了 HTTP 簡單的工作流程。其實 HTTP 協(xié)議比較復(fù)雜,感興趣的讀者可以更加深入的去學(xué)習(xí) HTTP 底層的原理,對以后開發(fā)爬蟲以及 WEB 應(yīng)用都有很大的幫助。