一次搞懂 HTTP 協(xié)議!

前端面試必考:http協(xié)議!

那什么是http協(xié)議呢?今天一起來學(xué)習(xí)掌握,一大波干貨來襲!

當(dāng)我們打開谷歌開發(fā)控制臺(tái)時(shí),可以通過Network面板查看某一請(qǐng)求的請(qǐng)求頭和響應(yīng)頭還有響應(yīng)內(nèi)容,這些特別是在查看Ajax請(qǐng)求的時(shí)候,非常有幫助。可以看到HTTP請(qǐng)求頭、HTTP響應(yīng)頭、HTTP返回的內(nèi)容等信息,對(duì)于開發(fā)、調(diào)試,都是很有用的。

什么是HTTP?

HTTP 全稱:超文本傳輸協(xié)議

HTTP 負(fù)責(zé) web 服務(wù)器與 web 瀏覽器之間的通信。

HTTP 用于從 web 客戶端(瀏覽器)向 web 服務(wù)器發(fā)送請(qǐng)求,并從 web 服務(wù)器向 web 客戶端返回內(nèi)容(網(wǎng)頁)。

HTTP工作原理(流程)

一次HTTP操作稱為一個(gè)事務(wù),其工作過程可分為四步:

1、首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個(gè)超級(jí)鏈接,HTTP的工作開始。

2、建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是MIME信息包括請(qǐng)求修飾符、客戶機(jī)信息和可能的內(nèi)容。

3、服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。

4、客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接

簡單記憶:

建立TCP連接

瀏覽器向服務(wù)器發(fā)送請(qǐng)求

服務(wù)器發(fā)送應(yīng)答頭,向?yàn)g覽器發(fā)送數(shù)據(jù)

服務(wù)器關(guān)閉TCP連接

需要注意的事項(xiàng):

http不是持續(xù)性連接:每次只限一個(gè)請(qǐng)求,請(qǐng)求-應(yīng)答-斷開。可以節(jié)省傳輸時(shí)間。

http是無狀態(tài)的:是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

HTTP協(xié)議有哪些特征

支持客戶/服務(wù)器模式

簡單快速

靈活

無連接

無狀態(tài)

HTTP和TCP之間的關(guān)系

TCP/IP參考模型,如下圖:

HTTP狀態(tài)碼(status code)

狀態(tài)碼:每條HTTP響應(yīng)報(bào)文返回時(shí)都會(huì)攜帶一個(gè)狀態(tài)碼,用于告知客戶端請(qǐng)求是否成功或者是否需要執(zhí)行其他動(dòng)作。狀態(tài)碼由三位數(shù)字組成。

http中status-code的第一個(gè)數(shù)字定義響應(yīng)的類別

響應(yīng)類:

1XX:信息響應(yīng)類;表示接受到請(qǐng)求并且繼續(xù)處理

2XX:處理成功響應(yīng)類;表示動(dòng)作被成功接收、理解和接受

3XX:重定向響應(yīng)類:請(qǐng)求必須進(jìn)一步處理。

錯(cuò)誤類:

4XX:客戶端錯(cuò)誤;客戶端請(qǐng)求有語法錯(cuò)誤或請(qǐng)求不能正確執(zhí)行

5XX:服務(wù)端錯(cuò)誤;服務(wù)端不能正確執(zhí)行一個(gè)正確的請(qǐng)求

常見的狀態(tài)代碼

200:客戶端請(qǐng)求ok

304:自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁未修改過

403:禁止訪問

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

500:服務(wù)器遇到錯(cuò)誤,無法完成請(qǐng)求

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

HTTP方法有哪些?

GET:通過請(qǐng)求URI得到資源。一般用于獲取/查詢資源信息。

POST:用于向服務(wù)器提交新的內(nèi)容。一般用于更新資源信息。

PUT:傳輸文件,報(bào)文主體中包含文件內(nèi)容,保存到對(duì)應(yīng)URI位置。

HEAD: 獲得報(bào)文首部,與GET方法類似,只是不返回報(bào)文主體,一般用于驗(yàn)證URI是否有效。

DELETE:刪除文件,與PUT方法相反,刪除對(duì)應(yīng)URI位置的文件。

OPTIONS:查詢相應(yīng)URI支持的HTTP方法。

HTTP常見面試題(部分)

1、http與https的區(qū)別:

http是不安全的,而https是安全的

http標(biāo)準(zhǔn)端口是80,而https的標(biāo)準(zhǔn)端口是443

http無法加密,而https對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密

http無需證書,而https需要CA機(jī)構(gòu)wosign的頒發(fā)的SSL證書

https就是ttp加上加密處理(一般是SSL安全通信線路)+認(rèn)證+完整性保護(hù)

2、URI和URL的區(qū)別

URI,統(tǒng)一資源標(biāo)識(shí)符。

URL,統(tǒng)一資源定位器。URL一般由三部分組成 :協(xié)議 、存有資源的主機(jī)IP地址、主機(jī)資源的具體地址。如目錄和文件名等

3、什么是Http協(xié)議無狀態(tài)協(xié)議?怎么解決Http協(xié)議無狀態(tài)協(xié)議?

(1)無狀態(tài)協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息

(2)解決辦法:

Cookie?

通過Session會(huì)話保存。

可適當(dāng)?shù)纳暇W(wǎng)搜索更多相關(guān)的資料,面試題來給自己充電。當(dāng)然,掌握以上全部基礎(chǔ)必知的知識(shí)點(diǎn),對(duì)面試的你來說,有提高自己的信心!

推薦經(jīng)典書籍

《HTTP權(quán)威指南》

《HTTP權(quán)威指南》

《圖解HTTP》

《HTTP權(quán)威指南》

《HTTP/2基礎(chǔ)教程》

《HTTP/2基礎(chǔ)教程》

HTTP協(xié)議是前端面試必問的一個(gè)知識(shí)點(diǎn),你掌握了嗎?


歡迎關(guān)注微信公眾號(hào)【一文插畫】,回復(fù)【資源】即可獲得學(xué)習(xí)資料~?“領(lǐng)干貨” 一起提升技能!未經(jīng)授權(quán),不得轉(zhuǎn)載。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容