HTTP最凸出的優(yōu)先是簡(jiǎn)單, 靈活 易于擴(kuò)展, 應(yīng)用廣泛和跨平臺(tái)
簡(jiǎn)單
HTTP基本的報(bào)文格式就是header + body, 頭部信息也是key-value的簡(jiǎn)單文本形式, 易于理解,降低了學(xué)習(xí)和使用門檻靈活和易于擴(kuò)展
HTTP協(xié)議里的各類請(qǐng)求方法, URL, 狀態(tài)碼,頭部字段等每個(gè)組成要求都沒(méi)有被固定死, 都允許開發(fā)人員自定義和擴(kuò)充
同時(shí)HTTP由于工作在應(yīng)用層,(OSI第七層), 則它下層可以隨意變化.比如:
- HTTPS就是在HTTP與TCP層之間添加了SSL/TLS安全傳輸層
- HTTP1.1和HTTP2.0傳輸協(xié)議使用的是TCP協(xié)議, 而到了HTTP3.0傳輸協(xié)議改用了UDP協(xié)議
- 應(yīng)用廣泛和跨平臺(tái)
互聯(lián)網(wǎng)發(fā)展至今, HTTP的應(yīng)用范圍非常廣泛, 從臺(tái)式機(jī)的瀏覽器到手機(jī)上的各種APP, 從看新聞, 刷貼吧到購(gòu)物,理財(cái),吃雞,HTTP的應(yīng)用遍地開花, 同時(shí)天然具有跨平臺(tái)的優(yōu)越性
HTTP1.1.的缺點(diǎn)有哪些
HTTP協(xié)議里有優(yōu)缺點(diǎn)一體的雙刃劍, 分別是無(wú)狀態(tài), 明文傳輸,同時(shí)還有一大缺點(diǎn) 不安全
- 無(wú)狀態(tài)雙刃劍
無(wú)狀態(tài)的好處, 服務(wù)器不會(huì)記憶HTTP的狀態(tài), 所以不需要額外資源來(lái)記錄狀態(tài)信息, 減輕服務(wù)器負(fù)擔(dān)
無(wú)狀態(tài)的壞處, 既然服務(wù)器沒(méi)有記憶功能, 那么在完成有關(guān)聯(lián)性的操作時(shí)就會(huì)比較麻煩
例如登錄-> 添加到購(gòu)物車->下單->結(jié)算-支付, 這一系列操作都要知道用戶的身份, 但是服務(wù)器不知道這些請(qǐng)求是關(guān)聯(lián)的, 每次都要問(wèn)一遍身份信息
這樣每次都要操作一遍, 這購(gòu)物體驗(yàn)還能愉快嗎
對(duì)于無(wú)狀態(tài)的問(wèn)題, 解決方法比較多,比較常用的就是Cookie技術(shù)
Cookie通過(guò)在請(qǐng)求和響應(yīng)報(bào)文中寫入Cookie信息來(lái)控制客戶端狀態(tài)
明文傳輸?shù)牡膬?yōu)缺點(diǎn)
自己可以方便的查看傳輸?shù)男畔?別人也可以,相當(dāng)于將所有信息暴露在外,很容易被竊取不安全
通信使用明文(不加密), 內(nèi)容可能會(huì)被竊聽
不驗(yàn)證通信放的身份, 可能遭遇偽裝攻擊
無(wú)法證明報(bào)文的完整性, 可能會(huì)被篡改
HTTP安全問(wèn)題,可以使用HTTPS的方式解決