小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

 知行合一ing 2017-11-19

HTTP基本原理

在本節(jié)我們會(huì)詳細(xì)了解 HTTP 的基本原理,了解在瀏覽器中敲入一個(gè) URL 到獲取網(wǎng)頁(yè)內(nèi)容發(fā)生了一個(gè)怎樣的過(guò)程,了解了這些內(nèi)容,有助于去進(jìn)一步了解爬蟲(chóng)的基本原理。小編推薦大家加一下這個(gè)群:330637182 這個(gè)群里好幾千人了!大家遇到啥問(wèn)題都會(huì)在里面交流!而且免費(fèi)分享零基礎(chǔ)入門(mén)料資料web開(kāi)發(fā) 爬蟲(chóng)資料一整套!是個(gè)非常好的學(xué)習(xí)交流地方!也有程序員大神給大家熱心解答各種問(wèn)題!很快滿員了。欲進(jìn)從速哦!各種PDF等你來(lái)下載!全部都是免費(fèi)的哦!所以小編在群里等你們過(guò)來(lái)一起交流學(xué)習(xí)呢!

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

關(guān)于爬蟲(chóng)的HTTP原理,看完這一長(zhǎng)篇就夠了?。ǜ饺笈老x(chóng)案例)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

Python程序員

2 個(gè)月前

HTTP基本原理

在本節(jié)我們會(huì)詳細(xì)了解 HTTP 的基本原理,了解在瀏覽器中敲入一個(gè) URL 到獲取網(wǎng)頁(yè)內(nèi)容發(fā)生了一個(gè)怎樣的過(guò)程,了解了這些內(nèi)容,有助于去進(jìn)一步了解爬蟲(chóng)的基本原理。

1. URI、URL

在了解 HTTP 之前我們先了解一下 URI 和 URL。我們經(jīng)常會(huì)聽(tīng)到 URI 和 URL 兩個(gè)術(shù)語(yǔ),URI 全稱為 Uniform Resource Identifier,即統(tǒng)一資源標(biāo)志符,URL 全稱為 Universal Resource Locator,即統(tǒng)一資源定位符。

舉例來(lái)說(shuō),https://github.com/favicon.ico,這是 GitHub 的網(wǎng)站圖標(biāo)鏈接,它是一個(gè) URL,也是一個(gè) URI,即有這樣的一個(gè)圖標(biāo)資源,我們用 URL/URI 來(lái)唯一指定了它的訪問(wèn)方式,這其中包括了訪問(wèn)協(xié)議 https、訪問(wèn)路徑/即根目錄,資源名稱 favicon.ico,通過(guò)這樣的一個(gè)鏈接我們便可以從互聯(lián)網(wǎng)上找到這個(gè)資源,這就是 URL/URI。

URL 是 URI 的子集,也就是說(shuō)每個(gè) URL 都是 URI,但不是每個(gè) URI 都是 URL。那么怎樣的 URI 不是 URL 呢?URI 還包括一個(gè)子類叫做 URN,它的全稱為 Universal Resource Name,即統(tǒng)一資源名稱。URN 只命名資源而不指定如何定位資源,如 urn:isbn:0451450523,它指定了一本書(shū)的 ISBN,可以唯一標(biāo)識(shí)這一本書(shū),但是沒(méi)有指定到哪里定位這本書(shū),這就是 URN,URL、URN、URI 的關(guān)系可以用圖表示如下:

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

URL、URN、URI 關(guān)系圖

但是在目前的互聯(lián)網(wǎng),URN 的使用非常少,所以幾乎所有的 URI 都是 URL,所以一般的網(wǎng)頁(yè)鏈接我們可以稱之為 URL,也可以稱之為 URI,我個(gè)人習(xí)慣稱之為 URL。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

  • 是建立一個(gè)信息安全通道,來(lái)保證數(shù)據(jù)傳輸?shù)陌踩?/p>

  • 確認(rèn)網(wǎng)站的真實(shí)性,凡是使用了 https 的網(wǎng)站,都可以通過(guò)點(diǎn)擊瀏覽器地址欄的鎖頭標(biāo)志來(lái)查看網(wǎng)站認(rèn)證之后的真實(shí)信息,也可以通過(guò) CA 機(jī)構(gòu)頒發(fā)的安全簽章來(lái)查詢。

現(xiàn)在越來(lái)越多的網(wǎng)站和 APP 都已經(jīng)向 HTTPS 方向發(fā)展。例如:

  • 蘋(píng)果公司強(qiáng)制所有 iOS App 在 2017 年 1 月 1 日 前全部改為使用 HTTPS 加密,否則 APP 就無(wú)法在應(yīng)用商店上架。

  • 谷歌從 2017 年 1 月推出的 Chrome 56 開(kāi)始,對(duì)未進(jìn)行 HTTPS 加密的網(wǎng)址鏈接亮出風(fēng)險(xiǎn)提示,即在地址欄的顯著位置提醒用戶“此網(wǎng)頁(yè)不安全”。

  • 騰訊微信小程序的官方需求文檔要求后臺(tái)使用 HTTPS 請(qǐng)求進(jìn)行網(wǎng)絡(luò)通信,不滿足條件的域名和協(xié)議無(wú)法請(qǐng)求。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

12306 頁(yè)面

這是因?yàn)?12306 的 CA 證書(shū)是中國(guó)鐵道部自己頒發(fā)給自己的,而這個(gè)證書(shū)是不被官方機(jī)構(gòu)認(rèn)可的,所以這里證書(shū)驗(yàn)證就不會(huì)通過(guò)而提示這樣的話,但是實(shí)際上它的數(shù)據(jù)傳輸依然是經(jīng)過(guò) SSL 加密的。我們?nèi)绻廊∵@樣的站點(diǎn)就需要設(shè)置忽略證書(shū)的選項(xiàng),否則會(huì)提示 SSL 鏈接錯(cuò)誤,在后文會(huì)進(jìn)行詳細(xì)說(shuō)明。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

網(wǎng)絡(luò)請(qǐng)求記錄

這一個(gè)條目的各列分別代表:

  • 第一列 Name,即 Request 的名稱。一般會(huì)用URL的最后一部分內(nèi)容當(dāng)做名稱。

  • 第二列 Status,即 Response 的狀態(tài)碼。這里顯示為 200,代表 Response 是正常的,通過(guò)狀態(tài)碼我們可以判斷發(fā)送了 Request 之后是否得到了正常的 Response。

  • 第三列 Type,即 Request 請(qǐng)求的文檔類型。這里為 document,代表我們這次請(qǐng)求的是一個(gè) HTML 文檔,內(nèi)容就是一些 HTML 代碼。

  • 第四列 Initiator,即請(qǐng)求源。用來(lái)標(biāo)記 Request 是由哪個(gè)對(duì)象或進(jìn)程發(fā)起的。

  • 第五列 Size,即從服務(wù)器下載的文件和請(qǐng)求的資源大小。如果是從緩存中取得的資源則該列會(huì)顯示 from cache。

  • 第六列 Time,即發(fā)起 Request 到獲取到 Response 所用的總時(shí)間。

  • 第七列 Timeline,即網(wǎng)絡(luò)請(qǐng)求的可視化瀑布流。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

方法描述

GET請(qǐng)求指定的頁(yè)面信息,并返回實(shí)體主體。

HEAD類似于 GET 請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭。

POST向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求,數(shù)據(jù)被包含在請(qǐng)求體中。

PUT從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。

DELETE請(qǐng)求服務(wù)器刪除指定的頁(yè)面。

CONNECTHTTP/1.1 協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。

OPTIONS允許客戶端查看服務(wù)器的性能。

TRACE回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

詳細(xì)信息

在登錄之前我們填寫(xiě)了用戶名和密碼信息,提交時(shí)就這些內(nèi)容就會(huì)以 Form Data 的形式提交給服務(wù)器,此時(shí)注意 Request Headers 中指定了 Content-Type 為 application/x-www-form-urlencoded,只有設(shè)置 Content-Type 為 application/x-www-form-urlencoded 才會(huì)以 Form Data 形式提交,另外我們也可以將 Content-Type 設(shè)置為 application/json 來(lái)提交 Json 數(shù)據(jù),或者設(shè)置為 multipart/form-data 來(lái)上傳文件。

下面列出了 Content-Type 和 POST 提交數(shù)據(jù)方式的關(guān)系:

Content-Type提交數(shù)據(jù)方式

application/x-www-form-urlencodedForm 表單提交

multipart/form-data表單文件上傳提交

application/json序列化 Json 數(shù)據(jù)提交

text/xmlXML 數(shù)據(jù)提交

在爬蟲(chóng)中如果我們要構(gòu)造 POST 請(qǐng)求需要注意這幾種 Content-Type,了解各種請(qǐng)求庫(kù)的各個(gè)參數(shù)設(shè)置時(shí)使用的是哪種 Content-Type,不然可能會(huì)導(dǎo)致 POST 提交后得不到正常的 Response。

以上便是對(duì) Request 各部分內(nèi)容的解釋。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

狀態(tài)碼說(shuō)明詳情

100繼續(xù)請(qǐng)求者應(yīng)當(dāng)繼續(xù)提出請(qǐng)求。服務(wù)器已收到請(qǐng)求的一部分,正在等待其余部分。

101切換協(xié)議請(qǐng)求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認(rèn)并準(zhǔn)備切換。

200成功服務(wù)器已成功處理了請(qǐng)求。

201已創(chuàng)建請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源。

202已接受服務(wù)器已接受請(qǐng)求,但尚未處理。

203非授權(quán)信息服務(wù)器已成功處理了請(qǐng)求,但返回的信息可能來(lái)自另一來(lái)源。

204無(wú)內(nèi)容服務(wù)器成功處理了請(qǐng)求,但沒(méi)有返回任何內(nèi)容。

205重置內(nèi)容服務(wù)器成功處理了請(qǐng)求,內(nèi)容被重置。

206部分內(nèi)容服務(wù)器成功處理了部分請(qǐng)求。

300多種選擇針對(duì)請(qǐng)求,服務(wù)器可執(zhí)行多種操作。

301永久移動(dòng)請(qǐng)求的網(wǎng)頁(yè)已永久移動(dòng)到新位置,即永久重定向。

302臨時(shí)移動(dòng)請(qǐng)求的網(wǎng)頁(yè)暫時(shí)跳轉(zhuǎn)到其他頁(yè)面,即暫時(shí)重定向。

303查看其他位置如果原來(lái)的請(qǐng)求是 POST,重定向目標(biāo)文檔應(yīng)該通過(guò) GET 提取。

304未修改此次請(qǐng)求返回的網(wǎng)頁(yè)未修改,繼續(xù)使用上次的資源。

305使用代理請(qǐng)求者應(yīng)該使用代理訪問(wèn)該網(wǎng)頁(yè)。

307臨時(shí)重定向請(qǐng)求的資源臨時(shí)從其他位置響應(yīng)。

400錯(cuò)誤請(qǐng)求服務(wù)器無(wú)法解析該請(qǐng)求。

401未授權(quán)請(qǐng)求沒(méi)有進(jìn)行身份驗(yàn)證或驗(yàn)證未通過(guò)。

403禁止訪問(wèn)服務(wù)器拒絕此請(qǐng)求。

404未找到服務(wù)器找不到請(qǐng)求的網(wǎng)頁(yè)。

405方法禁用服務(wù)器禁用了請(qǐng)求中指定的方法。

406不接受無(wú)法使用請(qǐng)求的內(nèi)容響應(yīng)請(qǐng)求的網(wǎng)頁(yè)。

407需要代理授權(quán)請(qǐng)求者需要使用代理授權(quán)。

408請(qǐng)求超時(shí)服務(wù)器請(qǐng)求超時(shí)。

409沖突服務(wù)器在完成請(qǐng)求時(shí)發(fā)生沖突。

410已刪除請(qǐng)求的資源已永久刪除。

411需要有效長(zhǎng)度服務(wù)器不接受不含有效內(nèi)容長(zhǎng)度標(biāo)頭字段的請(qǐng)求。

412未滿足前提條件服務(wù)器未滿足請(qǐng)求者在請(qǐng)求中設(shè)置的其中一個(gè)前提條件。

413請(qǐng)求實(shí)體過(guò)大請(qǐng)求實(shí)體過(guò)大,超出服務(wù)器的處理能力。

414請(qǐng)求 URI 過(guò)長(zhǎng)請(qǐng)求網(wǎng)址過(guò)長(zhǎng),服務(wù)器無(wú)法處理。

415不支持類型請(qǐng)求的格式不受請(qǐng)求頁(yè)面的支持。

416請(qǐng)求范圍不符頁(yè)面無(wú)法提供請(qǐng)求的范圍。

417未滿足期望值服務(wù)器未滿足期望請(qǐng)求標(biāo)頭字段的要求。

500服務(wù)器內(nèi)部錯(cuò)誤服務(wù)器遇到錯(cuò)誤,無(wú)法完成請(qǐng)求。

501未實(shí)現(xiàn)服務(wù)器不具備完成請(qǐng)求的功能。

502錯(cuò)誤網(wǎng)關(guān)服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無(wú)效響應(yīng)。

503服務(wù)不可用服務(wù)器目前無(wú)法使用。

504網(wǎng)關(guān)超時(shí)服務(wù)器作為網(wǎng)關(guān)或代理,但是沒(méi)有及時(shí)從上游服務(wù)器收到請(qǐng)求。

505HTTP 版本不支持服務(wù)器不支持請(qǐng)求中所用的 HTTP 協(xié)議版本。

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

如果你連HTTP原理都不清楚!那你爬個(gè)屁呢!神級(jí)程序員詳解!超長(zhǎng)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多