前端面試必考: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》
《HTTP/2基礎(chǔ)教程》
HTTP協(xié)議是前端面試必問的一個(gè)知識(shí)點(diǎn),你掌握了嗎?
歡迎關(guān)注微信公眾號(hào)【一文插畫】,回復(fù)【資源】即可獲得學(xué)習(xí)資料~?“領(lǐng)干貨” 一起提升技能!未經(jīng)授權(quán),不得轉(zhuǎn)載。