什麼是HTTP協議?
超文本傳輸協議,是一個基於請求與響應,無狀態的,應用層的協議,常基於TCP/IP協議傳輸數據,互聯網上
應用最爲廣泛的一種網絡協議,所有的www文件都必須遵守這個協議,設計HTTP的初衷是爲了提供一種發佈和接受HTML頁面的方法。
什麼是HTTPS協議?
HTTPS是一種通過計算機網絡進行安全通信的傳輸協議,經由HTTP進行通信,利用SSL/TLS建立安全信道,加密數據包。HTTPS使用的主要目的是提供對網站服務器的身份認證,同時保護交換數據的隱私與完整性。
PS:TLS是傳輸層加密協議,前身是SSL協議,由網景公司1995年發佈,有時候兩者不區分
HTTP特點:
1.無狀態:協議對客戶端沒有狀態存儲,對事物處理沒有記憶能力,比如訪問一個網站需要重複進行登錄操作
2.無連接:由於無狀態特點,每次請求需要通過TCP三次握手四次揮手,和服務器重新建立連接,比如某個客戶機在短時間多次請求同一個資源,服務器並不能區別是否已經響應用戶的請求,所以每次需要重新響應請求,需要耗費不必要的時間和流量
3.基礎請求和響應:基本的特性,由客戶端發起請求,服務器響應
4.簡單快速、靈活
HTTP協議傳輸以明文形式顯示
針對無狀態的一些解決策略:
1.通過cookie/session技術
2.HTTP持久連接方法,只要任意一端沒有明確提出斷開連接,則保證TCP連接狀態,在請求首部字段中的connetcion:keep-alive即爲表明使用了持久連接
HTTPS特點:
基於http協議,通過SSL或者TLS提供加密處理數據、驗證對方身份以及數據完整性保護
1.內容加密:採用混合加密技術,中間者無法直接查看明文內容
2.驗證身份:通過證書認證客戶端訪問的是自己的服務器
3.保護數據完整性:防止傳輸的內容被中間人冒充或者篡改
HTTP和HTTPS區別:
http協議工作在80端口,https協議工作在443端口
https需要申請證書(用於驗證服務器身份)
http在tcp三次握手建立連接字後即可開始傳輸數據,https協議則需要在建立TCP連接之後客戶端與服務器在進行ssl加密,確定對話祕鑰,完成加密後纔開始傳輸數據
https協議傳輸是 密文,http協議傳輸是明文
SSL層:
Secure Socket Layer,爲Netscape所研發,用以保障在Internet上數據傳輸的安全,利用數據加密(Encryption)技術,可確保數據在網絡上的傳輸過程中不會被截取及竊聽。