前端面試必考:http協(xié)議炭庙!
那什么是http協(xié)議呢?今天一起來學(xué)習(xí)掌握煌寇,一大波干貨來襲焕蹄!
當(dāng)我們打開谷歌開發(fā)控制臺時,可以通過Network面板查看某一請求的請求頭和響應(yīng)頭還有響應(yīng)內(nèi)容唧席,這些特別是在查看Ajax請求的時候擦盾,非常有幫助√视矗可以看到HTTP請求頭、HTTP響應(yīng)頭辽故、HTTP返回的內(nèi)容等信息徒仓,對于開發(fā)、調(diào)試誊垢,都是很有用的掉弛。
什么是HTTP?
HTTP 全稱:超文本傳輸協(xié)議
HTTP 負(fù)責(zé) web 服務(wù)器與 web 瀏覽器之間的通信喂走。
HTTP 用于從 web 客戶端(瀏覽器)向 web 服務(wù)器發(fā)送請求殃饿,并從 web 服務(wù)器向 web 客戶端返回內(nèi)容(網(wǎng)頁)。
HTTP工作原理(流程)
一次HTTP操作稱為一個事務(wù)芋肠,其工作過程可分為四步:
1乎芳、首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個超級鏈接帖池,HTTP的工作開始奈惑。
2、建立連接后睡汹,客戶機(jī)發(fā)送一個請求給服務(wù)器肴甸,請求方式的格式為:統(tǒng)一資源標(biāo)識符(URL)、協(xié)議版本號囚巴,后邊是MIME信息包括請求修飾符原在、客戶機(jī)信息和可能的內(nèi)容友扰。
3、服務(wù)器接到請求后庶柿,給予相應(yīng)的響應(yīng)信息焕檬,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號澳泵、一個成功或錯誤的代碼实愚,后邊是MIME信息包括服務(wù)器信息、實體信息和可能的內(nèi)容兔辅。
4腊敲、客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接
簡單記憶:
建立TCP連接
瀏覽器向服務(wù)器發(fā)送請求
服務(wù)器發(fā)送應(yīng)答頭维苔,向瀏覽器發(fā)送數(shù)據(jù)
服務(wù)器關(guān)閉TCP連接
需要注意的事項:
http不是持續(xù)性連接:每次只限一個請求碰辅,請求-應(yīng)答-斷開〗槭保可以節(jié)省傳輸時間没宾。
http是無狀態(tài)的:是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息沸柔,則它必須重傳循衰,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面褐澎,在服務(wù)器不需要先前信息時它的應(yīng)答就較快会钝。
HTTP協(xié)議有哪些特征
支持客戶/服務(wù)器模式
簡單快速
靈活
無連接
無狀態(tài)
HTTP和TCP之間的關(guān)系
TCP/IP參考模型,如下圖:
HTTP狀態(tài)碼(status code)
狀態(tài)碼:每條HTTP響應(yīng)報文返回時都會攜帶一個狀態(tài)碼工三,用于告知客戶端請求是否成功或者是否需要執(zhí)行其他動作迁酸。狀態(tài)碼由三位數(shù)字組成。
http中status-code的第一個數(shù)字定義響應(yīng)的類別
響應(yīng)類:
1XX:信息響應(yīng)類俭正;表示接受到請求并且繼續(xù)處理
2XX:處理成功響應(yīng)類奸鬓;表示動作被成功接收、理解和接受
3XX:重定向響應(yīng)類:請求必須進(jìn)一步處理掸读。
錯誤類:
4XX:客戶端錯誤串远;客戶端請求有語法錯誤或請求不能正確執(zhí)行
5XX:服務(wù)端錯誤;服務(wù)端不能正確執(zhí)行一個正確的請求
常見的狀態(tài)代碼
200:客戶端請求ok
304:自從上次請求后寺枉,請求的網(wǎng)頁未修改過
403:禁止訪問
404:服務(wù)器找不到請求的網(wǎng)頁
500:服務(wù)器遇到錯誤抑淫,無法完成請求
502:服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無效響應(yīng)
HTTP方法有哪些姥闪?
GET:通過請求URI得到資源始苇。一般用于獲取/查詢資源信息。
POST:用于向服務(wù)器提交新的內(nèi)容筐喳。一般用于更新資源信息催式。
PUT:傳輸文件函喉,報文主體中包含文件內(nèi)容,保存到對應(yīng)URI位置荣月。
HEAD: 獲得報文首部管呵,與GET方法類似,只是不返回報文主體哺窄,一般用于驗證URI是否有效捐下。
DELETE:刪除文件,與PUT方法相反萌业,刪除對應(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對傳輸?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)識符衙四。
URL,統(tǒng)一資源定位器侵贵。URL一般由三部分組成 :協(xié)議 届搁、存有資源的主機(jī)IP地址、主機(jī)資源的具體地址窍育。如目錄和文件名等
3、什么是Http協(xié)議無狀態(tài)協(xié)議?怎么解決Http協(xié)議無狀態(tài)協(xié)議?
(1)無狀態(tài)協(xié)議對于事務(wù)處理沒有記憶能力宴胧。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息
(2)解決辦法:
Cookie?
通過Session會話保存漱抓。
可適當(dāng)?shù)纳暇W(wǎng)搜索更多相關(guān)的資料,面試題來給自己充電恕齐。當(dāng)然乞娄,掌握以上全部基礎(chǔ)必知的知識點,對面試的你來說显歧,有提高自己的信心仪或!
推薦經(jīng)典書籍
《HTTP權(quán)威指南》
《圖解HTTP》
《HTTP/2基礎(chǔ)教程》
HTTP協(xié)議是前端面試必問的一個知識點,你掌握了嗎士骤?
歡迎關(guān)注微信公眾號【一文插畫】范删,回復(fù)【資源】即可獲得學(xué)習(xí)資料~?“領(lǐng)干貨” 一起提升技能!未經(jīng)授權(quán)拷肌,不得轉(zhuǎn)載到旦。