上篇博客裏面寫了,爬蟲就是發http請求(瀏覽器裏面打開發送的都是http請求),而後獲取到response,我們再從response裏面找到想要的數據,存儲到本地。瀏覽器
我們本章就來講一下什麼是http請求,它裏面都有哪些東西,咱們在寫爬蟲的時候,怎麼http請求裏面哪些對咱們的爬蟲有影響。服務器
我們打開一個網站的時候,過程是這樣的客戶端(瀏覽器)發送請求到服務端(你打開的網站所在的服務器),服務端接收到請求,處理,返回數據給客戶端(瀏覽器),而後我們在瀏覽器裏面看到了數據。post
明白了這個過程以後呢,我們再來講http請求裏面都包含了什麼東西。測試
主要有:GET/POST兩種類型經常使用,另外還有HEAD/PUT/DELETE/OPTIONS
GET和POST的區別就是:請求的數據GET是在url中,POST則是存放在請求體裏面。網站
GET:通常向服務器獲取數據用get請求,get請求的數據都是放在url中的,實質上和post請求沒有太大的區別,固然也能夠用來向服務器發送數據。url
POST:通常向服務器發送數據用post請求,post請求的數據放在請求體裏。blog
HEAD:與GET方法同樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它的好處在於,使用這個方法能夠在沒必要傳輸所有內容的狀況下,就能夠獲取其中「關於該資源的信息」(元信息或稱元數據)。ip
PUT:向指定資源位置上傳其最新內容。資源
OPTIONS:這個方法可以使服務器傳回該資源所支持的全部HTTP請求方法。用'*'來代替資源名稱,向Web服務器發送OPTIONS請求,能夠測試服務器功能是否正常運做。開發
DELETE:請求服務器刪除Request-URI所標識的資源。
URL,即統一資源定位符,也就是咱們說的網址,統一資源定位符是對能夠從互聯網上獲得的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每一個文件都有一個惟一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。
URL的格式由三個部分組成:
第一部分是協議(或稱爲服務方式)。 http/https
第二部分是存有該資源的主機IP地址(有時也包括端口號)。 www.nnzhp.cn/192.168.1.1:8888
第三部分是主機資源的具體地址,如目錄和文件名等。 /index
爬蟲爬取數據時必需要有一個目標的URL才能夠獲取數據,所以,它是爬蟲獲取數據的基本依據。
一個請求由兩部分組成, 請求頭和請求體。
包含請求時的頭部信息,如User-Agent,Host,Cookies等信息,user-agent就是你請求用的是什麼瀏覽器,host就是服務端的地址,還有不少信息,服務端是如何分辨你是用的什麼瀏覽器,你的ip地址就是從請求頭裏面獲取到的。下面就是在請求我博客的時候,發送的頭信息。
請求體就是發送數據的時候,數據放在請求體裏面。get請求是沒有請求體的,從上面的截圖也能看到,下面是沒有這個請求體的。post請求才有請求體。下面的截圖能夠看到登錄博客的這個請求是一個post請求,登錄的帳號密碼就是放在請求體裏面的。
上面說了請求,下面說響應。
發送了請求,服務端要給返回數據嘛。這個就是響應,請求是你發出去的,響應是服務端返回給你的。
響應包含了2個部分,一個是響應頭,一個是響應體。響應頭裏麪包含了響應的狀態碼,返回數據的類型,類型的長度,服務器信息,Cookie信息等等。
響應體裏面就是具體返回的數據了。
有不少響應狀態,不一樣的狀態碼錶明不一樣的狀態,常見的狀態碼如:200表明成功,301跳轉,404找不到頁面,502服務端錯誤
看下圖~