800819103
在線客服,實時響應qq群
在線客服,實時響應客服電話
13318873961
什么是 HTTP
HTTP(Hyper Text Transfer Protocol 超文本傳輸協議) 是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準,用于從 www 服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。HTTP 由萬維網協會和 Internet 工作小組 IETF 共同合作制定的規范。
HTTP 和 HTTPS
說起 HTTP,就不得不說 HTTPS,HTTPS 比 HTTP 多了個 S,這個 S 就為 SSL,它是一種網絡加密協議,會對網頁傳輸的數據進行加密,我們平常打開的網頁,比如我的博客,在 URL 的開頭,顯示 https,這個就屬于協議類型,當然,協議類型不止這一種,比如還有其他,如 ftp、sftp、smb 開頭的 URL,在爬蟲中,我們抓取的頁面通常就是 http 或 https。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版,即 HTTP 下加入 SSL 層,簡稱為 HTTPS。HTTPS 的安全基礎是 SSL,因此通過它傳輸的內容都是經過 SSL 加密的,它的主要作用可以分為兩種:
建立一個信息安全通道來保證數據傳輸的安全。
確認網站的真實性。
不僅電腦端上的網站朝 HTTPS 發展,現在越來越多的 APP 也朝著 HTTPS 方向發展,在未來,互聯網上到處可見 HTTPS。
HTTP 請求
請求是由客戶端向服務端發出,其中可分為四部分:請求方法、請求的網址、請求頭、請求體。
請求方法
常見的請求方法有 GET 和 POST。我們平常在瀏覽器輸入一個網址,按上駕車,這樣便發起了一個 GET 請求,請求的參數會包含在 URL 里。POST 請求大多是在表單提交時發起,但是你填入的數據不會出現在 URL 里,它會表單的形式傳輸,這也是它們兩者之間的差別。
請求的網址
請求的網址,即統一資源定位符 URL,它可以唯一確定我們想請求的資源。
請求頭
請求頭是用來說明服務器要使用的附加信息,比較重要的信息有 Cookies、Refer、User-Agent 等。
Accept:用來指定客戶端可接受哪些類型的信息。
Accept-Language:指定客戶端可接受的語言類型。
Accept-Encoding:指定客戶端可接受的內容編碼。
HOST:指定請求資源主機 IP 和端口號。
Cookie:它的主要功能是維持當前訪問會話。
Refer:用來標識這個請求是從哪個頁面發過來的,服務器拿到這一信息并做相應的處理,如做來源統計等。
User-Agent:使服務器識別客戶使用的操作系統及版本、瀏覽器及版本信息,爬蟲用此參數來偽裝瀏覽器。
Content-Type:用來表示具體請求中的媒體類型信息。
在做爬蟲時,大部分情況下還是需要設置請求頭。
請求體
請求體中的內容一般是對于 POST 請求來說的,而 GET 請求中,請求體為空。下面以我登錄博客后臺請求的頭部信息,在登錄前,輸入帳號和密碼信息,提交時就會以表單形式提交給服務器,這里需要注意 Request Headers 中指定 Content-Type 為上面箭頭把指定的值,它才會以表單數據的形式提交。下在說下其它值的含義:
application/x-www-form-urlencoded:表單數據
multipart/form-data:表單文件上傳
application/json:序列化 JSON 數據
text/xml:XML 數據
在爬蟲中,如需構造 POST 請求,需要使用正確的 Content-Type,并了解各種請求庫的各個參數設置時使用的是哪種 Content-Type,不然可能會導致 POST 提交后無法正常響應。
HTTP 響應
響應是由服務端返回給客戶端,其中可分為三部分:響應狀態碼、響應頭和響應體。
響應狀態碼
響應狀態碼表示服務器的響應狀態,如 200 表示服務器響應正常,404 代表頁面未找到,500 代表服務器內部發生錯誤。在爬蟲中,可以根據狀態碼來判斷服務器響應狀態,如狀態碼 200,則證明成功返回數據。如需獲取其它狀態碼,可在百度搜索。
響應頭
響應頭包含了服務器對請求的應答信息,如 Content-Type、Server、Set-Cookie 等。下面簡要說明常用頭信息:
Date:說明響應產生的時間。
Last-Modified:指定資源的最后修改時間。
Content-Ecoding:指定響應內容的編碼。
Server:包含服務器的信息,比如名稱、版本號等。
Content-Type:指定返回的數據類型是什么。
Set-Cookie:設置 Cookies。告訴瀏覽器需要將此內容放在 Cookies 中,下次請求攜帶 Cookies 請求
Expires:指定響應的過期時間
響應體
響應正文數據都在響應體中,比如請求網頁時,它的響應體就是網頁的 HTML 代碼;請求一張圖片時,它的響應體就是圖片的二進制數據。在做爬蟲過程中,我們要解析的內容就是響應體。