爬虫基础:HTTP基本原理
注意:該作者博客已遷移至https://buxianshan.xyz
HTTP/HTTPS
HTTP(Hyper Text Transfer Protocol):超文本傳輸協(xié)議。規(guī)定萬維網(wǎng)服務(wù)器與瀏覽器之間信息傳遞規(guī)范。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全為目標(biāo)的HTTP協(xié)議,簡單地講就是HTTP的安全版,加入了SSL加密層。
URL
URL(Universal Resource Locator):統(tǒng)一資源定位符。互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL。
格式:傳輸協(xié)議+域名+端口號(hào)+路徑+文件名
HTTP請求過程
在瀏覽器輸入U(xiǎn)RL按下回車便是通過瀏覽器向網(wǎng)站服務(wù)器發(fā)送了一個(gè)請求。網(wǎng)站服務(wù)器接收到這個(gè)請求后進(jìn)行處理,然后返回對(duì)應(yīng)的響應(yīng)給瀏覽器。瀏覽器再對(duì)收到的響應(yīng)解析,將網(wǎng)頁呈現(xiàn)出來。
在Chrom瀏覽器中,右鍵選擇【檢查】,即可打開瀏覽器的開發(fā)者工具,選擇“NetWork”條目。輸入百度的URL回車,觀察這個(gè)網(wǎng)絡(luò)請求的過程。
- 第一列Name:請求的名稱,一般會(huì)將URL的最后一部分內(nèi)容當(dāng)作名稱。
- 第二列Status:響應(yīng)的狀態(tài)碼,200代表正常,403代表禁止訪問,404代表未找到……
- 第三列Type:請求的文件類型。document代表html文檔,還有png、gif圖片,script腳本等。
- 第四列Initiator:請求源。用來標(biāo)記請求是由哪個(gè)對(duì)象或進(jìn)程發(fā)起的。
- 第五列Size:從服務(wù)器下載的文件資源大小。如**KB,disk cache代表從磁盤中獲取,memory cache代表從內(nèi)存中獲取。參考
- 第六列Time:從發(fā)起請求到獲得響應(yīng)的總時(shí)間。
我們只輸入了一個(gè)URL卻看到一連串的請求。這是因?yàn)闉g覽器收到響應(yīng)后,就開始解析其中的html代碼,遇到j(luò)s/css/image等靜態(tài)資源時(shí),就向服務(wù)器端去請求下載。比如點(diǎn)擊bd_log1.png這個(gè)請求,然后點(diǎn)擊Preview可以看預(yù)覽,就是百度的logo。參考
點(diǎn)擊一個(gè)條目,可以看到詳細(xì)信息。
General部分包含URL、請求方法、響應(yīng)狀態(tài)碼、遠(yuǎn)程服務(wù)器地址端口。
請求方法常用的有兩種:GET和POST。主要區(qū)別是GET請求中的參數(shù)包含在URL中(最多1024字節(jié)),可以在URL中看到。而POST請求以表單的形式傳輸參數(shù),參數(shù)包含在請求體中,大小無限制。
Request Headers請求頭
Accept:說明客戶端可以接受哪些類型的信息。
User-Agent:使服務(wù)器識(shí)別客戶使用的操作系統(tǒng)、瀏覽器及版本等信息。例如:
直接用python請求時(shí)默認(rèn)為:
User-Agent: Python-urllib/3.7有的網(wǎng)站通過識(shí)別 User-Agent 拒絕爬蟲,所以可以自己設(shè)置User-Agent偽裝成瀏覽器。
Cookie:網(wǎng)站為了辨別用戶進(jìn)行會(huì)話跟蹤而存儲(chǔ)在用戶本地的數(shù)據(jù)。比如登錄了一個(gè)網(wǎng)站,服務(wù)器給你設(shè)置了Cookie,以后只要在請求中加入Cookie,服務(wù)器就知道你已經(jīng)登錄過了,不用重新登錄就可以繼續(xù)訪問了。
請求體:一般是POST請求中的表單數(shù)據(jù),而GET請求體為空。
Response Headers響應(yīng)頭
- Date:響應(yīng)的日期時(shí)間
- Sever:包含服務(wù)器的信息,名稱、版本號(hào)等。如BWS/1.1應(yīng)該是Baidu Web Sever百度研發(fā)的web服務(wù)器。常見的還有Apache、IIS等。
- Set-Cookie:設(shè)置Cookie。告訴瀏覽器下次請求攜帶Cookie內(nèi)容。
響應(yīng)體:html代碼或者下載文件的二進(jìn)制數(shù)據(jù)。點(diǎn)擊“Preview”,就可以看到響應(yīng)體的內(nèi)容,它也是解析的目標(biāo)。
總結(jié)
以上是生活随笔為你收集整理的爬虫基础:HTTP基本原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学python之leetcode1863
- 下一篇: 2022年湖南省自考考试学前教育幼儿文学