摘要:協議的講解本文章屬于爬蟲入門到精通系統教程第三講什么是協議引用自維基百科超文本傳輸協議英文,縮寫是互聯網上應用最為廣泛的一種網絡協議。通過或者協議請求的資源由統一資源標識符,來標識。假定其下層協議提供可靠的傳輸。
HTTP協議的講解
本文章屬于爬蟲入門到精通系統教程第三講
什么是HTTP協議?引用自維基百科
一個實例超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是互聯網上應用最為廣泛的一種網絡協議。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協議請求的資源由統一資源標識符(Uniform Resource Identifiers,URI)來標識。
HTTP的發展是由蒂姆·伯納斯-李于1989年在歐洲核子研究組織(CERN)所發起。由萬維網協會(World Wide Web Consortium,W3C)和互聯網工程任務組(Internet Engineering Task Force,IETF)制定標準,最終發布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定義了HTTP協議中現今廣泛使用的一個版本——HTTP 1.1。
2014年12月,互聯網工程任務組(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小組將HTTP/2標準提議遞交至IESG進行討論[1],于2015年2月17日被批準。[2] HTTP/2標準于2015年5月以RFC 7540正式發表,替換HTTP 1.1成為HTTP的實現標準。[3]HTTP是一個客戶端終端(用戶)和服務器端(網站)請求和應答的標準(TCP)。通過使用網頁瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個HTTP請求到服務器上指定端口(默認端口為80)。我們稱這個客戶端為用戶代理程序(user agent)。應答的服務器上存儲著一些資源,比如HTML文件和圖像。我們稱這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個“中間層”,比如代理服務器、網關或者隧道(tunnel)。
盡管TCP/IP協議是互聯網上最流行的應用,HTTP協議中,并沒有規定必須使用它或它支持的層。事實上,HTTP可以在任何互聯網協議上,或其他網絡上實現。HTTP假定其下層協議提供可靠的傳輸。因此,任何能夠提供這種保證的協議都可以被其使用。因此也就是其在TCP/IP協議族使用TCP作為其傳輸層。
通常,由HTTP客戶端發起一個請求,創建一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端的請求。一旦收到請求,服務器會向客戶端返回一個狀態,比如"HTTP/1.1 200 OK",以及返回的內容,如請求的文件、錯誤消息、或者其它信息。
打開爬蟲從入門到精通系統教程---目錄 這個網頁
按鍵盤上的F12(開發者工具)
點擊鍵盤上的F5刷新下網頁
點擊Network
點擊Doc
應該會看到如下界面
然后我們點擊25296437
應該會看到如下界面
Request URL:https://zhuanlan.zhihu.com/p/25296437 (爬蟲會用到)
這個對應HTTP協議中的統一資源定位符也就是我們打開的網址
Request Method:GET(爬蟲會用到)
這個對應HTTP協議中的請求方法,我們這次用的是GET
請求方法有以下這些,常用的是GET,POST
GET:向指定的資源發出“顯示”請求。使用GET方法應該只用在讀取數據,而不應當被用于產生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。參見安全方法
POST:向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件)。數據被包含在請求本文中。這個請求可能會創建新的資源或修改現有資源,或二者皆有。
OPTIONS:這個方法可使服務器傳回該資源所支持的所有HTTP請求方法。用"*"來代替資源名稱,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。
HEAD:與GET方法一樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它的好處在于,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關于該資源的信息”(元信息或稱元數據)。
PUT:向指定資源位置上傳其最新內容。
DELETE:請求服務器刪除Request-URI所標識的資源。
TRACE:回顯服務器收到的請求,主要用于測試或診斷。
CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。通常用于SSL加密服務器的鏈接(經由非加密的HTTP代理服務器)。
Status Code:200 OK(爬蟲會用到)
這個對應HTTP協議中的狀態碼,我們這次返回的是200 OK、
所有HTTP響應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。
狀態代碼的第一個數字代表當前響應的類型:
1xx消息——請求已被服務器接收,繼續處理
2xx成功——請求已成功被服務器接收、理解、并接受
3xx重定向——需要后續操作才能完成這一請求
4xx請求錯誤——請求含有詞法錯誤或者無法被執行
5xx服務器錯誤——服務器在處理某個正確請求時發生錯誤
常見狀態代碼、狀態描述、說明:
200 OK //請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常
Requests Headers(請求頭)Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8(爬蟲會用到)
Accept請求報頭域用于指定客戶端接受哪些類型的信息。eg:Accept:image/gif,表明客戶端希望接受GIF圖象格式的資源;Accept:text/html,表明客戶端希望接受html文本。
Accept-Encoding:gzip, deflate, sdch, br
Accept-Encoding請求報頭域類似于Accept,但是它是用于指定可接受的內容編碼。eg:Accept-Encoding:gzip.deflate.如果請求消息中沒有設置這個域服務器假定客戶端對各種內容編碼都可以接受。
Accept-Language:zh-CN,zh;q=0.8
Accept-Language請求報頭域類似于Accept,但是它是用于指定一種自然語言。eg:Accept-Language:zh-cn.如果請求消息中沒有設置這個報頭域,服務器假定客戶端對各種語言都可以接受
Cache-Control:no-cache
Cache-Control 是用來控制網頁的緩存,詳細可以Cache-control_百度百科
Connection:keep-alive
HTTP持久連接(HTTP persistent connection,也稱作HTTP keep-alive或HTTP connection reuse)是使用同一個TCP連接來發送和接收多個HTTP請求/應答,而不是為每一個新的請求/應答打開新的連接的方法。
詳情介紹請參考HTTP持久連接
Cookie:d_c0="AACAWNtZswqPTnJ8dFXqaygiq82ekPD5_-xxxx(爬蟲會用到)
Cookie(復數形態Cookies),中文名稱為“小型文本文件”或“小甜餅”[1],指某些網站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數據(通常經過加密)。定義于RFC2109。是網景公司的前雇員盧·蒙特利在1993年3月的發明[2]。詳情介紹請參考Cookie
舉個例子,當我登錄知乎后,知乎會給我一個cookie,然后我在以后的一段時間內,每次打開知乎,都不需要重新登錄。這是因為瀏覽器每次都會把我之前存儲的cookie帶上。
Host:zhuanlan.zhihu.com
當前請求網址的請求域
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36(爬蟲會用到)
用戶是通過什么工具來請求的,(因為我用的Google瀏覽器,所以顯示的是Chrome)
Referer:https://www.zhihu.com/people/pa-chong-21/activities(爬蟲會用到)
是通過哪個頁面到當前頁面的(也就是上一個頁面是什么?當前截圖里面沒有)
舉個例子,當我是通過百度搜索頁面點到當前頁面的,那么Referer就是百度搜索頁
If-Modified-Since:Wed, 15 Feb 2017 09:14:13 GMT
If-None-Match:W/"58a41be5-190aa"
Last-Modified:Wed, 15 Feb 2017 09:14:13 GMT
ETag:"58a41be5-190aa"
這4個一般靜態頁面會用到 If-Modified-Since,If-None-Match
這兩個是請求頭,ETag,Last-Modified是返回頭(服務器返回的)
如果If-Modified-Since的值和Last-Modified相等 則表明當前請求的內容沒有變動,服務器返回 Status Code:304 Not Modified
If-None-Match和ETag 同理
看完本篇文章后,你應該要
大概了解什么是HTTP協議
HTTP常見請求方法有哪幾種?
HTTP常見狀態碼有哪些?
HTTP請求頭中,大概了解Accept,Cookie,User-Agent,Referer是干啥的?
最后的最后,收藏的大哥們,能幫忙點個贊么~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38576.html
摘要:網頁的下載本文章屬于爬蟲入門到精通系統教程第四講在爬蟲入門到精通第二講中,我們了解了協議,那么我們現在使用這些協議來快速爬蟲吧本文的目標當你看完本文后,你應該能爬取幾乎任何的網頁使用抓包抓包就是將網絡傳輸發送與接收的數據包進行截獲重發編輯轉 網頁的下載 本文章屬于爬蟲入門到精通系統教程第四講 在爬蟲入門到精通第二講中,我們了解了HTTP協議,那么我們現在使用這些協議來快速爬蟲吧 本文的...
摘要:本文章屬于爬蟲入門到精通系統教程第七講直接開始案例吧。本次我們實現如何模擬登陸知乎。 本文章屬于爬蟲入門到精通系統教程第七講 直接開始案例吧。 本次我們實現如何模擬登陸知乎。 1.抓包 首先打開知乎登錄頁 知乎 - 與世界分享你的知識、經驗和見解 注意打開開發者工具后點擊preserve log,密碼記得故意輸入錯誤,然后點擊登錄 showImg(https://segmentfaul...
摘要:循環次數勾選為永遠就是這個用戶一直重復執行登錄的操作調度器勾選調度器可以更加靈活的控制線程組執行的時間持續時間線程組執行時間,在該時間內,線程組會一直重復執行。 目錄 一、線程組 1、添加線程組 2、線程組設置 二、HTTP請求默認值 1、添加HTTP請求默認值 三、HTTP請求 1、添加...
摘要:學習筆記七數學形態學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現代方法基于區域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
閱讀 2582·2021-10-19 11:41
閱讀 2420·2021-09-01 10:32
閱讀 3382·2019-08-29 15:21
閱讀 1760·2019-08-29 12:20
閱讀 1169·2019-08-29 12:13
閱讀 605·2019-08-26 12:24
閱讀 2524·2019-08-26 10:26
閱讀 836·2019-08-23 18:40