中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

教育類(lèi)網(wǎng)站怎么做優(yōu)化搜索引擎優(yōu)化排名培訓(xùn)

教育類(lèi)網(wǎng)站怎么做優(yōu)化,搜索引擎優(yōu)化排名培訓(xùn),網(wǎng)站主機(jī)與服務(wù)器,男女性男女直接做的視頻網(wǎng)站Python爬蟲(chóng)逆向系列(更新中):http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本節(jié)中,我們會(huì)詳細(xì)了解 HTTP 的基本原理,了解在瀏覽器中敲入 URL 到獲取網(wǎng)頁(yè)內(nèi)容之間發(fā)生了什么。了解了這些內(nèi)容,有助于我們進(jìn)一…

Python爬蟲(chóng)逆向系列(更新中):http://t.csdnimg.cn/5gvI3

HTTP 基本原理

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

1.URI 和 URL

這里我們先了解一下 URI 和 URL,URI 的全稱為 Uniform Resource Identifier,即統(tǒng)一資源標(biāo)志符,URL 的全稱為 Universal Resource Locator,即統(tǒng)一資源定位符。

舉例來(lái)說(shuō),https://github.com/favicon.ico,它是一個(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è)子類(lèi)叫作 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)系可以用圖表示。

56bcc55c6f5648f4b77485b2f779c5cc.png

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

2.超文本

接下來(lái),我們?cè)倭私庖粋€(gè)概念 —— 超文本,其英文名稱叫作 hypertext,我們?cè)跒g覽器里看到的網(wǎng)頁(yè)就是超文本解析而成的,其網(wǎng)頁(yè)源代碼是一系列 HTML 代碼,里面包含了一系列標(biāo)簽,比如 img 顯示圖片,p 指定顯示段落等。瀏覽器解析這些標(biāo)簽后,便形成了我們平??吹降木W(wǎng)頁(yè),而網(wǎng)頁(yè)的源代碼 HTML 就可以稱作超文本。

例如,我們?cè)?Chrome 瀏覽器里面打開(kāi)任意一個(gè)頁(yè)面,如淘寶首頁(yè),右擊任一地方并選擇 “檢查” 項(xiàng)(或者直接按快捷鍵 F12),即可打開(kāi)瀏覽器的開(kāi)發(fā)者工具,這時(shí)在 Elements 選項(xiàng)卡即可看到當(dāng)前網(wǎng)頁(yè)的源代碼,這些源代碼都是超文本,如圖所示。

44050a0a63a54375b4218499f55ded07.png

3.HTTP 和 HTTPS

在淘寶的首頁(yè) 淘寶,中,URL 的開(kāi)頭會(huì)有 http 或 https,這個(gè)就是訪問(wèn)資源需要的協(xié)議類(lèi)型,有時(shí)我們還會(huì)看到 ftp、sftp、smb 開(kāi)頭的 URL,那么這里的 ftp、sftp、smb 都是指的協(xié)議類(lèi)型。在爬蟲(chóng)中,我們抓取的頁(yè)面通常就是 http 或 https 協(xié)議的,我們?cè)谶@里首先來(lái)了解一下這兩個(gè)協(xié)議的含義。

HTTP 的全稱是 Hyper Text Transfer Protocol,中文名叫做超文本傳輸協(xié)議,HTTP 協(xié)議是用于從網(wǎng)絡(luò)傳輸超文本數(shù)據(jù)到本地瀏覽器的傳送協(xié)議,它能保證傳送高效而準(zhǔn)確地傳送超文本文檔。HTTP 由萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和 Internet 工作小組 IETF(Internet Engineering Task Force)共同合作制定的規(guī)范,目前廣泛使用的是 HTTP 1.1 版本。

HTTPS 的全稱是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全為目標(biāo)的 HTTP 通道,簡(jiǎn)單講是 HTTP 的安全版,即 HTTP 下加入 SSL 層,簡(jiǎn)稱為 HTTPS。

HTTPS 的安全基礎(chǔ)是 SSL,因此通過(guò)它傳輸?shù)膬?nèi)容都是經(jīng)過(guò) SSL 加密的,它的主要作用可以分為兩種:

  • 是建立一個(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)求。

而某些網(wǎng)站雖然使用了 HTTPS 協(xié)議還是會(huì)被瀏覽器提示不安全,例如我們?cè)?Chrome 瀏覽器里面打開(kāi) 12306,鏈接為:中國(guó)鐵路12306網(wǎng)站,這時(shí)瀏覽器就會(huì)提示 “您的連接不是私密連接” 這樣的話,如圖所示:

34bce6076a2c487bbaec62ea596caa40.png

這是因?yàn)?12306 的 CA 證書(shū)是中國(guó)鐵道部自行簽發(fā)的,而這個(gè)證書(shū)是不被 CA 機(jī)構(gòu)信任的,所以這里證書(shū)驗(yàn)證就不會(huì)通過(guò)而提示這樣的話,但是實(shí)際上它的數(shù)據(jù)傳輸依然是經(jīng)過(guò) SSL 加密的。如果要爬取這樣的站點(diǎn),就需要設(shè)置忽略證書(shū)的選項(xiàng),否則會(huì)提示 SSL 鏈接錯(cuò)誤。

4. HTTP 請(qǐng)求過(guò)程

我們?cè)跒g覽器中輸入一個(gè) URL,回車(chē)之后便會(huì)在瀏覽器中觀察到頁(yè)面內(nèi)容。實(shí)際上,這個(gè)過(guò)程是瀏覽器向網(wǎng)站所在的服務(wù)器發(fā)送了一個(gè)請(qǐng)求,網(wǎng)站服務(wù)器接收到這個(gè)請(qǐng)求后進(jìn)行處理和解析,然后返回對(duì)應(yīng)的響應(yīng),接著傳回給瀏覽器。響應(yīng)里包含了頁(yè)面的源代碼等內(nèi)容,瀏覽器再對(duì)其進(jìn)行解析,便將網(wǎng)頁(yè)呈現(xiàn)了出來(lái),模型如圖所示。

4724293cb3af4711b28d04745f1ebdab.png

此處客戶端即代表我們自己的 PC 或手機(jī)瀏覽器,服務(wù)器即要訪問(wèn)的網(wǎng)站所在的服務(wù)器。

為了更直觀地說(shuō)明這個(gè)過(guò)程,這里用 Chrome 瀏覽器的開(kāi)發(fā)者模式下的 Network 監(jiān)聽(tīng)組件來(lái)做下演示,它可以顯示訪問(wèn)當(dāng)前請(qǐng)求網(wǎng)頁(yè)時(shí)發(fā)生的所有網(wǎng)絡(luò)請(qǐng)求和響應(yīng)。

打開(kāi) Chrome 瀏覽器,右擊并選擇 “檢查” 項(xiàng),即可打開(kāi)瀏覽器的開(kāi)發(fā)者工具。這里訪問(wèn)百度 百度一下,你就知道,輸入該 URL 后回車(chē),觀察這個(gè)過(guò)程中發(fā)生了怎樣的網(wǎng)絡(luò)請(qǐng)求??梢钥吹?#xff0c;在 Network 頁(yè)面下方出現(xiàn)了一個(gè)個(gè)的條目,其中一個(gè)條目就代表一次發(fā)送請(qǐng)求和接收響應(yīng)的過(guò)程,如圖所示。

b4fc71ebfed64d1594a066d91d65d012.png

我們先觀察第一個(gè)網(wǎng)絡(luò)請(qǐng)求,即 www.baidu.com,其中各列的含義如下。

  • 第一列 Name:請(qǐng)求的名稱,一般會(huì)將 URL 的最后一部分內(nèi)容當(dāng)作名稱。

  • 第二列 Status:響應(yīng)的狀態(tài)碼,這里顯示為 200,代表響應(yīng)是正常的。通過(guò)狀態(tài)碼,我們可以判斷發(fā)送了請(qǐng)求之后是否得到了正常的響應(yīng)。

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

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

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

  • 第六列 Time:發(fā)起請(qǐng)求到獲取響應(yīng)所用的總時(shí)間。

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

我們點(diǎn)擊這個(gè)條目即可看到其更詳細(xì)的信息,如圖所示:

dc7af815b609499d87549f3f3747de22.png

首先是 General 部分,Request URL 為請(qǐng)求的 URL,Request Method 為請(qǐng)求的方法,Status Code 為響應(yīng)狀態(tài)碼,Remote Address 為遠(yuǎn)程服務(wù)器的地址和端口,Referrer Policy 為 Referrer 判別策略。

再繼續(xù)往下,可以看到,有 Response Headers 和 Request Headers,這分別代表響應(yīng)頭和請(qǐng)求頭。請(qǐng)求頭里帶有許多請(qǐng)求信息,例如瀏覽器標(biāo)識(shí)、Cookies、Host 等信息,這是請(qǐng)求的一部分,服務(wù)器會(huì)根據(jù)請(qǐng)求頭內(nèi)的信息判斷請(qǐng)求是否合法,進(jìn)而作出對(duì)應(yīng)的響應(yīng)。圖中看到的 Response Headers 就是響應(yīng)的一部分,例如其中包含了服務(wù)器的類(lèi)型、文檔類(lèi)型、日期等信息,瀏覽器接受到響應(yīng)后,會(huì)解析響應(yīng)內(nèi)容,進(jìn)而呈現(xiàn)網(wǎng)頁(yè)內(nèi)容。

下面我們分別來(lái)介紹一下請(qǐng)求和響應(yīng)都包含哪些內(nèi)容。

請(qǐng)求

請(qǐng)求,由客戶端向服務(wù)端發(fā)出,可以分為 4 部分內(nèi)容:請(qǐng)求方法(Request Method)、請(qǐng)求的網(wǎng)址(Request URL)、請(qǐng)求頭(Request Headers)、請(qǐng)求體(Request Body)。

1. 請(qǐng)求方法

常見(jiàn)的請(qǐng)求方法有兩種:GET 和 POST。

在瀏覽器中直接輸入 URL 并回車(chē),這便發(fā)起了一個(gè) GET 請(qǐng)求,請(qǐng)求的參數(shù)會(huì)直接包含到 URL 里。例如,在百度中搜索 Python,這就是一個(gè) GET 請(qǐng)求,鏈接為 百度安全驗(yàn)證,其中 URL 中包含了請(qǐng)求的參數(shù)信息,這里參數(shù) wd 表示要搜尋的關(guān)鍵字。POST 請(qǐng)求大多在表單提交時(shí)發(fā)起。比如,對(duì)于一個(gè)登錄表單,輸入用戶名和密碼后,點(diǎn)擊 “登錄” 按鈕,這通常會(huì)發(fā)起一個(gè) POST 請(qǐng)求,其數(shù)據(jù)通常以表單的形式傳輸,而不會(huì)體現(xiàn)在 URL 中。

GET 和 POST 請(qǐng)求方法有如下區(qū)別。

  • GET 請(qǐng)求中的參數(shù)包含在 URL 里面,數(shù)據(jù)可以在 URL 中看到,而 POST 請(qǐng)求的 URL 不會(huì)包含這些數(shù)據(jù),數(shù)據(jù)都是通過(guò)表單形式傳輸?shù)?#xff0c;會(huì)包含在請(qǐng)求體中。

  • GET 請(qǐng)求提交的數(shù)據(jù)最多只有 1024 字節(jié),而 POST 方式?jīng)]有限制。

一般來(lái)說(shuō),登錄時(shí),需要提交用戶名和密碼,其中包含了敏感信息,使用 GET 方式請(qǐng)求的話,密碼就會(huì)暴露在 URL 里面,造成密碼泄露,所以這里最好以 POST 方式發(fā)送。上傳文件時(shí),由于文件內(nèi)容比較大,也會(huì)選用 POST 方式。

我們平常遇到的絕大部分請(qǐng)求都是 GET 或 POST 請(qǐng)求,另外還有一些請(qǐng)求方法,如 GET、HEAD、POST、PUT、DELETE、OPTIONS、CONNECT、TRACE 等。

其他請(qǐng)求方法

方  法描  述
GET請(qǐng)求頁(yè)面,并返回頁(yè)面內(nèi)容
HEAD類(lèi)似于 GET 請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭
POST大多用于提交表單或上傳文件,數(shù)據(jù)包含在請(qǐng)求體中
PUT從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定文檔中的內(nèi)容
DELETE請(qǐng)求服務(wù)器刪除指定的頁(yè)面
CONNECT把服務(wù)器當(dāng)作跳板,讓服務(wù)器代替客戶端訪問(wèn)其他網(wǎng)頁(yè)
OPTIONS允許客戶端查看服務(wù)器的性能
TRACE回顯服務(wù)器收到的請(qǐng)求,主要用于測(cè)試或診斷

2. 請(qǐng)求的網(wǎng)址

請(qǐng)求的網(wǎng)址,即統(tǒng)一資源定位符 URL,它可以唯一確定我們想請(qǐng)求的資源。

3. 請(qǐng)求頭

請(qǐng)求頭,用來(lái)說(shuō)明服務(wù)器要使用的附加信息,比較重要的信息有 Cookie、Referer、User-Agent 等。下面簡(jiǎn)要說(shuō)明一些常用的頭信息。

  • Accept:請(qǐng)求報(bào)頭域,用于指定客戶端可接受哪些類(lèi)型的信息。

  • Accept-Language:指定客戶端可接受的語(yǔ)言類(lèi)型。

  • Accept-Encoding:指定客戶端可接受的內(nèi)容編碼。

  • Host:用于指定請(qǐng)求資源的主機(jī) IP 和端口號(hào),其內(nèi)容為請(qǐng)求 URL 的原始服務(wù)器或網(wǎng)關(guān)的位置。從 HTTP 1.1 版本開(kāi)始,請(qǐng)求必須包含此內(nèi)容。

  • Cookie:也常用復(fù)數(shù)形式 Cookies,這是網(wǎng)站為了辨別用戶進(jìn)行會(huì)話跟蹤而存儲(chǔ)在用戶本地的數(shù)據(jù)。它的主要功能是維持當(dāng)前訪問(wèn)會(huì)話。例如,我們輸入用戶名和密碼成功登錄某個(gè)網(wǎng)站后,服務(wù)器會(huì)用會(huì)話保存登錄狀態(tài)信息,后面我們每次刷新或請(qǐng)求該站點(diǎn)的其他頁(yè)面時(shí),會(huì)發(fā)現(xiàn)都是登錄狀態(tài),這就是 Cookies 的功勞。Cookies 里有信息標(biāo)識(shí)了我們所對(duì)應(yīng)的服務(wù)器的會(huì)話,每次瀏覽器在請(qǐng)求該站點(diǎn)的頁(yè)面時(shí),都會(huì)在請(qǐng)求頭中加上 Cookies 并將其發(fā)送給服務(wù)器,服務(wù)器通過(guò) Cookies 識(shí)別出是我們自己,并且查出當(dāng)前狀態(tài)是登錄狀態(tài),所以返回結(jié)果就是登錄之后才能看到的網(wǎng)頁(yè)內(nèi)容。

  • Referer:此內(nèi)容用來(lái)標(biāo)識(shí)這個(gè)請(qǐng)求是從哪個(gè)頁(yè)面發(fā)過(guò)來(lái)的,服務(wù)器可以拿到這一信息并做相應(yīng)的處理,如做來(lái)源統(tǒng)計(jì)、防盜鏈處理等。

  • User-Agent:簡(jiǎn)稱 UA,它是一個(gè)特殊的字符串頭,可以使服務(wù)器識(shí)別客戶使用的操作系統(tǒng)及版本、瀏覽器及版本等信息。在做爬蟲(chóng)時(shí)加上此信息,可以偽裝為瀏覽器;如果不加,很可能會(huì)被識(shí)別出為爬蟲(chóng)。

  • Content-Type:也叫互聯(lián)網(wǎng)媒體類(lèi)型(Internet Media Type)或者 MIME 類(lèi)型,在 HTTP 協(xié)議消息頭中,它用來(lái)表示具體請(qǐng)求中的媒體類(lèi)型信息。例如,text/html 代表 HTML 格式,image/gif 代表 GIF 圖片,application/json 代表 JSON 類(lèi)型,更多對(duì)應(yīng)關(guān)系可以查看此對(duì)照表:HTTP Content-type 對(duì)照表。

因此,請(qǐng)求頭是請(qǐng)求的重要組成部分,在寫(xiě)爬蟲(chóng)時(shí),大部分情況下都需要設(shè)定請(qǐng)求頭。

4. 請(qǐng)求體

請(qǐng)求體一般承載的內(nèi)容是 POST 請(qǐng)求中的表單數(shù)據(jù),而對(duì)于 GET 請(qǐng)求,請(qǐng)求體則為空。

例如,這里我登錄 GitHub 時(shí)捕獲到的請(qǐng)求和響應(yīng)如圖所示。

9e5cebd192234442955f0be4acac1db7.png

登錄之前,我們填寫(xiě)了用戶名和密碼信息,提交時(shí)這些內(nèi)容就會(huì)以表單數(shù)據(jù)的形式提交給服務(wù)器,此時(shí)需要注意 Request Headers 中指定 Content-Type 為 application/x-www-form-urlencoded。只有設(shè)置 Content-Type 為 application/x-www-form-urlencoded,才會(huì)以表單數(shù)據(jù)的形式提交。另外,我們也可以將 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 和 POST 提交數(shù)據(jù)方式的關(guān)系

Content-Type提交數(shù)據(jù)的方式
application/x-www-form-urlencoded表單數(shù)據(jù)
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 提交后無(wú)法正常響應(yīng)。

響應(yīng)

響應(yīng),由服務(wù)端返回給客戶端,可以分為三部分:響應(yīng)狀態(tài)碼(Response Status Code)、響應(yīng)頭(Response Headers)和響應(yīng)體(Response Body)。

1. 響應(yīng)狀態(tài)碼

響應(yīng)狀態(tài)碼表示服務(wù)器的響應(yīng)狀態(tài),如 200 代表服務(wù)器正常響應(yīng),404 代表頁(yè)面未找到,500 代表服務(wù)器內(nèi)部發(fā)生錯(cuò)誤。在爬蟲(chóng)中,我們可以根據(jù)狀態(tài)碼來(lái)判斷服務(wù)器響應(yīng)狀態(tài),如狀態(tài)碼為 200,則證明成功返回?cái)?shù)據(jù),再進(jìn)行進(jìn)一步的處理,否則直接忽略。表中列出了常見(jiàn)的錯(cuò)誤代碼及錯(cuò)誤原因。

常見(jiàn)的錯(cuò)誤代碼及錯(cuò)誤原因

狀態(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)自另一個(gè)源
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不支持類(lèi)型請(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é)議版本

2. 響應(yīng)頭

響應(yīng)頭包含了服務(wù)器對(duì)請(qǐng)求的應(yīng)答信息,如 Content-Type、Server、Set-Cookie 等。下面簡(jiǎn)要說(shuō)明一些常用的頭信息。

  • Date:標(biāo)識(shí)響應(yīng)產(chǎn)生的時(shí)間。

  • Last-Modified:指定資源的最后修改時(shí)間。

  • Content-Encoding:指定響應(yīng)內(nèi)容的編碼。

  • Server:包含服務(wù)器的信息,比如名稱、版本號(hào)等。

  • Content-Type:文檔類(lèi)型,指定返回的數(shù)據(jù)類(lèi)型是什么,如 text/html 代表返回 HTML 文檔,application/x-javascript 則代表返回 JavaScript 文件,image/jpeg 則代表返回圖片。

  • Set-Cookie:設(shè)置 Cookies。響應(yīng)頭中的 Set-Cookie 告訴瀏覽器需要將此內(nèi)容放在 Cookies 中,下次請(qǐng)求攜帶 Cookies 請(qǐng)求。

  • Expires:指定響應(yīng)的過(guò)期時(shí)間,可以使代理服務(wù)器或?yàn)g覽器將加載的內(nèi)容更新到緩存中。如果再次訪問(wèn)時(shí),就可以直接從緩存中加載,降低服務(wù)器負(fù)載,縮短加載時(shí)間。

3. 響應(yīng)體

最重要的當(dāng)屬響應(yīng)體的內(nèi)容了。響應(yīng)的正文數(shù)據(jù)都在響應(yīng)體中,比如請(qǐng)求網(wǎng)頁(yè)時(shí),它的響應(yīng)體就是網(wǎng)頁(yè)的 HTML 代碼;請(qǐng)求一張圖片時(shí),它的響應(yīng)體就是圖片的二進(jìn)制數(shù)據(jù)。我們做爬蟲(chóng)請(qǐng)求網(wǎng)頁(yè)后,要解析的內(nèi)容就是響應(yīng)體,如圖所示。

b1ed6038a49b406a817a3b3f7da11eb7.png

在瀏覽器開(kāi)發(fā)者工具中點(diǎn)擊 Preview,就可以看到網(wǎng)頁(yè)的源代碼,也就是響應(yīng)體的內(nèi)容,它是解析的目標(biāo)。

在做爬蟲(chóng)時(shí),我們主要通過(guò)響應(yīng)體得到網(wǎng)頁(yè)的源代碼、JSON 數(shù)據(jù)等,然后從中做相應(yīng)內(nèi)容的提取。

本節(jié)中,我們了解了 HTTP 的基本原理,大概了解了訪問(wèn)網(wǎng)頁(yè)時(shí)背后的請(qǐng)求和響應(yīng)過(guò)程。

后面分析網(wǎng)頁(yè)請(qǐng)求時(shí)會(huì)經(jīng)常用到。

如果本文對(duì)你有幫助,不要忘記點(diǎn)贊,收藏 + 關(guān)注!

我會(huì)持續(xù)更新更多好文!

http://m.risenshineclean.com/news/62085.html

相關(guān)文章:

  • bbs網(wǎng)站模板下載網(wǎng)站運(yùn)營(yíng)策劃書(shū)范文
  • 天寧常州做網(wǎng)站長(zhǎng)沙市seo百度關(guān)鍵詞
  • 新昌網(wǎng)站制作網(wǎng)站投放廣告費(fèi)用
  • 注冊(cè)功能網(wǎng)站建設(shè)icp備案查詢官網(wǎng)
  • 外貿(mào)網(wǎng)站建設(shè)公司渠道安卓系統(tǒng)優(yōu)化軟件
  • 營(yíng)銷(xiāo)型網(wǎng)站建設(shè)要懂代碼嗎西安網(wǎng)站制作工作室
  • 房地產(chǎn)公司 網(wǎng)站建設(shè)seo網(wǎng)絡(luò)優(yōu)化師
  • 做網(wǎng)站用sql和mysql域名批量查詢
  • 獨(dú)立外貿(mào)網(wǎng)站建設(shè)電商運(yùn)營(yíng)自學(xué)全套教程
  • 怎么對(duì)網(wǎng)站做壓力測(cè)試怎樣做關(guān)鍵詞排名優(yōu)化
  • 網(wǎng)絡(luò)公司網(wǎng)站賞析企業(yè)推廣視頻
  • 網(wǎng)站優(yōu)化軟件排行榜seo企業(yè)推廣案例
  • wordpress 圖片被壓縮seo包年服務(wù)
  • 廈門(mén)無(wú)憂網(wǎng)站建設(shè)有限公司網(wǎng)絡(luò)運(yùn)營(yíng)推廣合作
  • 臨淄網(wǎng)站建設(shè)公司網(wǎng)絡(luò)推廣自學(xué)
  • 關(guān)于人大網(wǎng)站建設(shè)免費(fèi)推廣產(chǎn)品平臺(tái)有哪些
  • 開(kāi)封景區(qū)網(wǎng)站建設(shè)方案寧德市蕉城區(qū)疫情
  • 彩票網(wǎng)站做任務(wù)賺錢(qián)地推是什么
  • 網(wǎng)站三網(wǎng)合一雙11銷(xiāo)量數(shù)據(jù)
  • 具有品牌的網(wǎng)站建設(shè)友情鏈接的方式如何選擇
  • 網(wǎng)站開(kāi)發(fā)企劃書(shū)網(wǎng)站收錄檢測(cè)
  • 學(xué)計(jì)算機(jī)出來(lái)能干什么seo搜索優(yōu)化技術(shù)
  • 石家莊專(zhuān)業(yè)網(wǎng)站建設(shè)百度指數(shù)批量查詢工具
  • 河北省做網(wǎng)站的企業(yè)常用seo站長(zhǎng)工具
  • 高端網(wǎng)站建設(shè)成都刷關(guān)鍵詞排名seo軟件
  • 西安 企業(yè)網(wǎng)站建設(shè)天津seo診斷
  • 個(gè)人做的網(wǎng)站有什么危險(xiǎn)嗎培訓(xùn)學(xué)校招生營(yíng)銷(xiāo)方案
  • 當(dāng)?shù)亟ㄔO(shè)局網(wǎng)站宿遷網(wǎng)站建設(shè)制作
  • 優(yōu)惠網(wǎng)站如何做南寧seo怎么做優(yōu)化團(tuán)隊(duì)
  • 廣州市建設(shè)企業(yè)網(wǎng)站價(jià)格推廣賺錢(qián)的app