從轉(zhuǎn)行到現(xiàn)在做了一年多的前端開發(fā)抓于,中間的過程跌跌轉(zhuǎn)轉(zhuǎn)口四,總覺得對(duì)一些網(wǎng)絡(luò)的基礎(chǔ)知識(shí)有所欠缺怎囚。這幾天看了一些http的相關(guān)文章和資料,以下是對(duì)這幾天的所學(xué)做個(gè)總結(jié)床佳。
當(dāng)我們打開一個(gè)網(wǎng)站滋早,瀏覽器某個(gè)網(wǎng)頁(yè),都必須有一個(gè)http請(qǐng)求砌们。下面了解一下http的一些基礎(chǔ)知識(shí):
定義
HTTP協(xié)議(Hyper Text Transfer Protocol)杆麸,即超文本傳輸協(xié)議的縮寫,是從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議浪感,是一個(gè)基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)昔头。
http請(qǐng)求過程
1、域名解析
2影兽、發(fā)起TCP3次握手
3揭斧、建立TCP請(qǐng)求發(fā)起 http 請(qǐng)求
4、服務(wù)器響應(yīng)http請(qǐng)求峻堰,得到 html 代碼
5讹开、瀏覽器解析 html 代碼,并請(qǐng)求 html 代碼資源
6捐名、瀏覽器對(duì)頁(yè)面進(jìn)行渲染旦万,呈現(xiàn)給用戶
http 狀態(tài)碼
常見的狀態(tài)碼:
200:請(qǐng)求成功
301:資源被永久的轉(zhuǎn)移到其他URL
404:請(qǐng)求的資源不存在
500:內(nèi)部服務(wù)器錯(cuò)誤
狀態(tài)碼分類:
1XX:信息。服務(wù)器收到請(qǐng)求镶蹋,需要請(qǐng)求者繼續(xù)操作
2XX:成功成艘。操作被成功接收并處理
3XX:重定向赏半。需要進(jìn)一步的操作以完成請(qǐng)求
4XX:客戶端錯(cuò)誤。請(qǐng)求包含語(yǔ)法錯(cuò)誤或無法完成請(qǐng)求
5XX:服務(wù)器錯(cuò)誤淆两。服務(wù)器在處理請(qǐng)求的時(shí)候發(fā)生錯(cuò)誤
與 http 相對(duì)應(yīng)的 https
什么是 https 断箫?我們用一個(gè)簡(jiǎn)單的公式來理解:
HTTPS = HTTP + TLS/SSL
也就是:在 http 的傳輸?shù)?過程加了一道 TLS/SSL (傳輸層加密協(xié)議),而這個(gè)協(xié)議是HTTPS 安全的核心琼腔。
https 加密流程
1瑰枫、客戶端將 TLS/SSL 協(xié)議的版本號(hào)踱葛、加密算法的種類丹莲,產(chǎn)生的隨機(jī)數(shù)A等信息傳給服務(wù)器
2、服務(wù)器選擇其中的一種組合為加密方式尸诽,同事將自己的證書甥材、公鑰、另外一個(gè)隨機(jī)數(shù)一起傳給客戶端
3性含、客戶端獲得服務(wù)端返回的信息(包括證書洲赵、簽名、域名等)商蕴,驗(yàn)證成功叠萍,則生成對(duì)稱加密秘鑰S,用公鑰加密后返回給服務(wù)器
4绪商、服務(wù)器用私鑰將這段密鑰解密苛谷,得到對(duì)稱密鑰S,并用次密鑰加密一段握手消息返回客戶端
5格郁、客戶端收到握手信息腹殿,用對(duì)稱密鑰解密,驗(yàn)證成功例书,則握手成功锣尉。
https 加密方式
1、對(duì)稱加密
加密數(shù)據(jù)用的密鑰(即公鑰)和解密數(shù)據(jù)用的密鑰(即私鑰)是一樣的决采。
2自沧、非對(duì)稱加密
公鑰和私鑰是不一樣的,只能保證單項(xiàng)數(shù)據(jù)的傳輸
理解加密的關(guān)鍵點(diǎn):私鑰能解開公鑰加密的數(shù)據(jù)树瞭,但私鑰加密的數(shù)據(jù)拇厢,同樣能用公鑰解密
https 優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1、使用 https 協(xié)議可以認(rèn)證用戶和服務(wù)器移迫,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器
2旺嬉、https 協(xié)議是由 SSL+HTTP 協(xié)u議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議厨埋,要比http 協(xié)議安全邪媳,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變,確保數(shù)據(jù)的完整性
3雨效、https 是現(xiàn)行架構(gòu)下最安全的解決方案迅涮,雖然不是絕對(duì)安全,但它大幅增加了中間人攻擊的成本
缺點(diǎn):
1徽龟、在相同的網(wǎng)絡(luò)環(huán)境下叮姑,https 協(xié)議會(huì)使頁(yè)面的加載時(shí)間延長(zhǎng)近50%,增加10%到20%的耗電据悔。此外传透,https 協(xié)議還會(huì)影響緩存、增加數(shù)據(jù)開銷和功耗
2极颓、https協(xié)議的安全是有范圍的朱盐,在黑客攻擊、拒絕服務(wù)攻擊菠隆、服務(wù)器劫持等方面幾乎起不到什么作用
3兵琳、最關(guān)鍵的,SSL 證書的信用鏈體系并不安全骇径,特別是在某些國(guó)家可以控制CA根證書的情況下躯肌,中間人攻擊一樣可行
4、SSL 的專業(yè)證書需要購(gòu)買破衔,功能越強(qiáng)大的證書費(fèi)用越改清女。個(gè)人網(wǎng)站、小網(wǎng)站可以選擇入門級(jí)免費(fèi)證書
5运敢、SSL 證書通常需要綁定固定IP校仑,為服務(wù)器增加固定IP會(huì)增加一定費(fèi)用
6、https 連接服務(wù)器端資源占用較高传惠,相同負(fù)載下會(huì)增加帶寬和服務(wù)器投入成本
關(guān)于http 和 https 先到此迄沫,下次繼續(xù)深入 TCP的三次握手和四次揮手。