HTTP(HyperText Transfer Protocol,超文本傳輸協議)被用於在Web瀏覽器和網站服務器之間傳遞信息,在TCP/IP中處於應用層。這裏提一下TCP/IP的分層:
共分爲四層:應用層、傳輸層、網絡層、數據鏈路層
分層的目的是:分層能夠解耦,動態替換層內協議
應用層:向用戶提供應用服務時的通訊活動(ftp,dns,http)
傳輸層:網絡連接中兩臺計算機的數據傳輸(tcp、udp)
網絡層:處理網絡上流動的數據包,通過怎樣的傳輸路徑把數據包傳送給對方(ip)
數據鏈路層:與硬件相關的網卡、設備驅動等等
然而HTTP也有以下明顯缺點:
- 通信使用明文,內容可能被竊聽
- 不驗證通信方的身份,因此有可能遭遇僞裝
- 無法證明報文的完整性,所以有可能遭到篡改
這樣,HTTP就登場了。HTTPS中的S表示SSL或者TLS,就是在原http的基礎上加上一層用於數據加密、解密、身份認證的安全層,即
- HTTP + 加密 + 認證 + 完整性保護 = HTTPS
現在來看看HTTPS是如何怎麼做到這一些。
先來看看單向認證的過程:
從上圖可以看出,服務端擁有一對非對稱密鑰:B_公鑰和B_私鑰。