一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 了解HTTP協(xié)議

了解HTTP協(xié)議

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2022-08-31 15:53:00 1661932380

  我們學(xué)習(xí)知識(shí)就像蓋房子一樣,沒有良好的地基,房子經(jīng)不起風(fēng)吹雨打。而如果房子的地基搭建的足夠牢固,即使臺(tái)風(fēng)來了都是高高的聳立在那里。我們沒有上來就講爬蟲怎么用,而是講了一些基礎(chǔ)的內(nèi)容。這些內(nèi)容大家都掌握了,后面我們學(xué)習(xí)實(shí)操爬蟲就會(huì)很順利,很清晰了。

  HTTP協(xié)議

  提到爬蟲我們不得不提起HTT協(xié)議,那什么是HTTP協(xié)議呢?

  HTTP協(xié)議(超文本傳輸協(xié)議HyperText Transfer Protocol),它是基于TCP協(xié)議的應(yīng)用層傳輸協(xié)議,簡單來說就是客戶端和服務(wù)端進(jìn)行數(shù)據(jù)傳輸?shù)囊环N規(guī)則。

  • 超文本:是指超過文本,不僅限于文本;還包括圖片、音頻、視頻等文件

  • 傳輸協(xié)議:是指使用共用約定的固定格式來傳遞轉(zhuǎn)換成字符串的超文本內(nèi)容

  • 默認(rèn)端口號(hào):80

  并且HTTP是一種無狀態(tài)(stateless) 協(xié)議, HTTP協(xié)議本身不會(huì)對(duì)發(fā)送過的請求和相應(yīng)的通信狀態(tài)進(jìn)行持久化處理。這樣做的目的是為了保持HTTP協(xié)議的簡單性,從而能夠快速處理大量的事務(wù), 提高效率。

  有時(shí)我們還會(huì)使用到https協(xié)議,其實(shí)他是HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協(xié),默認(rèn)端口號(hào):443

  • SSL對(duì)傳輸?shù)膬?nèi)容(超文本,也就是請求體或響應(yīng)體)進(jìn)行加密

  請求

  HTTP協(xié)議中每次請求都會(huì)攜帶下方的內(nèi)容,比如有請求的方法、請求的路徑、協(xié)議的版本等我們稱作請求行

  還有符合字段名:值的這個(gè)方式的,我們稱作請求頭。

  最后一部分是請求體。

Picture(6)

  大家來看一下,瀏覽器的開發(fā)者工具Network中的請求情況:

Picture(1)

  我們可以發(fā)現(xiàn)瀏覽器在發(fā)出請求的時(shí)候也是攜帶了請求行、請求頭等內(nèi)容。

  爬蟲中特別關(guān)注的請求頭

  無論是瀏覽器還是爬蟲,在發(fā)出請求的時(shí)候要遵守HTTP協(xié)議,遵守HTTP協(xié)議就要攜帶請求頭。

  瀏覽器的請求頭有哪些呢?同樣在Network模式點(diǎn)擊一個(gè)鏈接查看:

Picture(2)

  這么多請求頭發(fā)出請求的時(shí)候都要加嗎?不是的,因?yàn)槊總€(gè)網(wǎng)站的請求頭也是不一樣的,也不是統(tǒng)一的。所以爬蟲特別關(guān)注以下幾個(gè)請求頭字段:

  • Content-Type

  • Host (主機(jī)和端口號(hào))

  • Connection (鏈接類型)

  • Upgrade-Insecure-Requests (升級(jí)為HTTPS請求)

  • User-Agent (瀏覽器名稱)

  • Referer (頁面跳轉(zhuǎn)處)

  • Cookie (Cookie)

  • Authorization(用于表示HTTP協(xié)議中需要認(rèn)證資源的認(rèn)證信息,如前邊web課程中用于jwt認(rèn)證)

  加粗的請求頭為常用請求頭,在服務(wù)器被用來進(jìn)行爬蟲識(shí)別的頻率最高,相較于其余的請求頭更為重要,但是這里需要注意的是并不意味這其余的不重要,因?yàn)橛械木W(wǎng)站的運(yùn)維或者開發(fā)人員可能劍走偏鋒,會(huì)使用一些比較不常見的請求頭來進(jìn)行爬蟲的甄別

  響應(yīng)

  有請求再加上響應(yīng)才是一個(gè)完整的HTTP協(xié)議過程。那返回的響應(yīng)內(nèi)容格式又是什么呢?

Picture(3)

  所以每一次響應(yīng)都會(huì)包含上圖中的內(nèi)容,狀態(tài)碼、協(xié)議版本、響應(yīng)頭、響應(yīng)實(shí)體等。

  同樣為了我們更加直觀的來看響應(yīng)我們還是通過瀏覽器的Network來看。可以看到有狀態(tài)碼、遠(yuǎn)程主機(jī)IP、響應(yīng)頭等內(nèi)容

Picture(4)

  還有一個(gè)主要內(nèi)容是沒有看到的,那就是響應(yīng)體,需要點(diǎn)擊一下Response,就會(huì)發(fā)現(xiàn)下面發(fā)生了變化,你所看到的就是響應(yīng)體的內(nèi)容。

Picture(5)

  所以瀏覽器在發(fā)出請求的時(shí)候,運(yùn)行過程是:

Picture

  http請求的過程

  我們無論訪問任何網(wǎng)站都是在瀏覽器的地址欄上輸入域名的,比如:http://www.baidu.com. 因?yàn)橛蛎糜洶?我們從來不會(huì)記的百度的IP地址。但是識(shí)別的過程有DNS域名解析服務(wù)器完成了,它能夠根據(jù)你輸入的域名找到匹配的IP地址,然后將IP地址告訴你。

  瀏覽器在拿到域名對(duì)應(yīng)的ip后,開始發(fā)起請求,并獲取響應(yīng)

  在返回的響應(yīng)內(nèi)容(html)中,會(huì)帶有css、js、圖片等url地址,以及ajax代碼,瀏覽器按照響應(yīng)內(nèi)容中的順序依次發(fā)送其他的請求,并獲取相應(yīng)的響應(yīng)

  瀏覽器每獲取一個(gè)響應(yīng)就對(duì)展示出的結(jié)果進(jìn)行添加(加載),js,css等內(nèi)容會(huì)修改頁面的內(nèi)容,js也可以重新發(fā)送請求,獲取響應(yīng)

  從獲取第一個(gè)響應(yīng)并在瀏覽器中展示,直到最終獲取全部響應(yīng),——這個(gè)過程叫做瀏覽器的渲染

  那講了這么多,到底HTTP跟我們即將要講的爬蟲有什么關(guān)系呢?請看下圖:

Picture(7)

  http作用

  這個(gè)是爬蟲的步驟,而HTTP協(xié)議則是這個(gè)步驟中的一部分而且是最重要的一部分,即發(fā)送請求獲取響應(yīng)的那部分。

  【說的明白些,就是【請求和響應(yīng)】這段其實(shí)就是瀏覽器要干的活,我們通過寫程序假裝是瀏覽器在訪問?!?span style="text-indent: 2em;">!!!上圖紅色框起來的那部分就是假裝瀏覽器在做事情

  下一次爬蟲我們給大家介紹正則表達(dá)式,并且介紹正則表達(dá)式在爬蟲中的使用。

  更多關(guān)于“Python培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
軟件開發(fā)管理流程中會(huì)出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項(xiàng)目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會(huì)開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個(gè)高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開發(fā)平臺(tái),它為眾多硬件平臺(tái)和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11