免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
如果你連HTTP原理都不清楚!那你爬個屁呢!神級程序員詳解!超長

HTTP基本原理

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

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

Python程序員

2 個月前

HTTP基本原理

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

1. URI、URL

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

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

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

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

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

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

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

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

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

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

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

12306 頁面

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

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

這一個條目的各列分別代表:

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

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

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

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

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

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

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

方法描述

GET請求指定的頁面信息,并返回實體主體。

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

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

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

DELETE請求服務(wù)器刪除指定的頁面。

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

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

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

詳細(xì)信息

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

下面列出了 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ù)提交

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

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

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

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

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

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

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

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

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

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

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

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

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

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

302臨時移動請求的網(wǎng)頁暫時跳轉(zhuǎn)到其他頁面,即暫時重定向。

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

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

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

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

400錯誤請求服務(wù)器無法解析該請求。

401未授權(quán)請求沒有進(jìn)行身份驗證或驗證未通過。

403禁止訪問服務(wù)器拒絕此請求。

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

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

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

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

408請求超時服務(wù)器請求超時。

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

410已刪除請求的資源已永久刪除。

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

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

413請求實體過大請求實體過大,超出服務(wù)器的處理能力。

414請求 URI 過長請求網(wǎng)址過長,服務(wù)器無法處理。

415不支持類型請求的格式不受請求頁面的支持。

416請求范圍不符頁面無法提供請求的范圍。

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

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

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

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

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

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

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
關(guān)于爬蟲的HTTP原理,看完這一長篇就夠了!(附三大爬蟲案例)
HTTP請求、響應(yīng)報文格式
java程序員菜鳥進(jìn)階(六)《HTTP權(quán)威指南》之HTTP相關(guān)概念詳解
http協(xié)議原理介紹
我所理解的RESTful Web API [Web標(biāo)準(zhǔn)篇]
Mongoose源碼剖析:外篇之web服務(wù)器
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服