創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、正定網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為正定等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)爬蟲中的HTTP是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在學(xué)習(xí)爬蟲的過程中,相信大家對HTTP這個詞已經(jīng)不陌生了,它好像從未離開過我們的視線。被迫所需,我們每次都要使用開發(fā)者工具去查看請求頭,響應(yīng)頭,以及頭中的各個字段,使用別人封裝好的模塊填入信息,敲幾行代碼就解決了。面對簡單的爬取任務(wù),我們也許根本不用管它是什么,但可能等我們真正遇到問題的時候,卻無從下手。
什么是http?
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有WWW文件都必須遵守這個標(biāo)準(zhǔn)。設(shè)計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。
1960年美國人Ted Nelson構(gòu)思了一種通過計算機(jī)處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。Ted Nelson組織協(xié)調(diào)萬維網(wǎng)協(xié)會(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究,最終發(fā)布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。
http模型
HTTP采用了瀏覽器/服務(wù)器這種請求/響應(yīng)模型,瀏覽器永遠(yuǎn)是HTTP請求的發(fā)起者,服務(wù)器為響應(yīng)者。這樣在瀏覽器客戶端沒有發(fā)起請求的情況下,服務(wù)器是不能主動推送消息給客戶端的。
http的定位
HTTP是一個應(yīng)用層協(xié)議,是我們想從服務(wù)器端獲取信息的最直觀的請求。比如,在爬蟲中使用的
但是HTTP也不是直接就可以用的,它的請求是建立在一些底層協(xié)議的基礎(chǔ)上完成的。如TCP/IP協(xié)議棧中,HTTP需要TCP的三次握手連接成功后才能向服務(wù)器發(fā)起請求。當(dāng)然,如果是HTTPS的話,還需要TSL和SSL安全層。
一個完整的HTTP請求
既然HTTP協(xié)議需要建立在其它底層協(xié)議基礎(chǔ)上,我們來看看一個完整的HTTP請求是什么樣的。
當(dāng)我們點擊一個鏈接或者輸入一個鏈接的時候,整個HTTP的請求過程就開始了,然后經(jīng)過以下步驟得到最后的信息,我們這里簡單介紹一下前四個步驟,旨在了解HTTP。
<1> 域名解析
首先會搜索各種本地DNS緩存,如果沒有就會向DNS服務(wù)器(互聯(lián)網(wǎng)提供商)發(fā)起域名解析,以獲取IP地址。
<2> 建立TCP連接
當(dāng)獲取IP后,將創(chuàng)建套接字socket連接,也就是TCP的3次握手連接,默認(rèn)端口號80。
<3> HTTP請求
一旦TCP連接成功后,瀏覽器/爬蟲就可以向服務(wù)器發(fā)起HTTP請求報文了,報文內(nèi)容包含請求行、請求頭部、請求主體。
<4> 服務(wù)器響應(yīng)
服務(wù)器響應(yīng),并返回一個HTTP響應(yīng)包(如果成功會返回狀態(tài)碼200)和請求的HTML代碼。
響應(yīng)HTTP請求會返回響應(yīng)狀態(tài)碼,根據(jù)狀態(tài)碼可以知道返回信息的狀態(tài)。狀態(tài)碼規(guī)定如下:
1xx: 信息響應(yīng)類,表示接收到請求并且繼續(xù)處理
100——必須繼續(xù)發(fā)出請求
101——要求服務(wù)器根據(jù)請求轉(zhuǎn)換HTTP協(xié)議版本
2xx: 處理成功響應(yīng)類,表示動作被成功接收、理解和接受
200——交易成功
201——提示知道新文件的URL
202——接受和處理、但處理未完成
203——返回信息不確定或不完整
204——請求收到,但返回信息為空
205——服務(wù)器完成了請求,用戶代理必須復(fù)位當(dāng)前已經(jīng)瀏覽過的文件
206——服務(wù)器已經(jīng)完成了部分用戶的GET請求
3xx: 重定向響應(yīng)類,為了完成指定的動作,必須接受進(jìn)一步處理
300——請求的資源可在多處得到
301——刪除請求數(shù)據(jù)
302——在其他地址發(fā)現(xiàn)了請求數(shù)據(jù)
303——建議客戶訪問其他URL或訪問方式
304——客戶端已經(jīng)執(zhí)行了GET,但文件未變化
305——請求的資源必須從服務(wù)器指定的地址得到
306——前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用
307——申明請求的資源臨時性刪除
4xx: 客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執(zhí)行
400——錯誤請求,如語法錯誤
401——未授權(quán)
402——保留有效ChargeTo頭響應(yīng)
403——禁止訪問
404——沒有發(fā)現(xiàn)文件、查詢或URl
405——在Request-Line字段定義的方法不允許
406——根據(jù)發(fā)送的Accept,請求資源不可訪問
407——用戶必須首先在代理服務(wù)器上得到授權(quán)
408——客戶端沒有在指定的時間內(nèi)完成請求
409——對當(dāng)前資源狀態(tài),請求不能完成
410——服務(wù)器不再有此資源且無進(jìn)一步地址
411——服務(wù)器拒絕用戶定義的Content-Length
412——一個或多個請求頭字段在當(dāng)前請求中錯誤
413——請求的資源大于服務(wù)器允許的大小
414——請求的資源URL長于服務(wù)器允許的長度
415——請求資源不支持請求項目格式
416——請求中包含Range請求頭字段,在當(dāng)前請求資源范圍內(nèi)沒有range指示值,請求也不包含If-Range請求頭字段
417——服務(wù)器不滿足請求Expect頭字段指定的期望值,如果是代理服務(wù)器,可能是下一級服務(wù)器不能滿足請求長。
5xx: 服務(wù)端錯誤,服務(wù)器不能正確執(zhí)行一個正確的請求
500——內(nèi)部服務(wù)器錯誤
501——未實現(xiàn)
502——網(wǎng)關(guān)錯誤
上述就是小編為大家分享的爬蟲中的HTTP是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。