HTTP是「超文本傳輸協定」,是以TCP來做網路資料傳輸的一種方式,舉一個例子,今天要傳送一份文件到雲端給同事下載,流程會是資料上傳 → 透過TCP傳資料到伺服器 → 到達網路 → 同事下載
在早年前使用HTTP來進行這一連串的動作,很有可能被有心人士竊取資料,因為HTTP雖然可以傳送資料,但是沒有完善的安全機制,因此後來才有了HTTPS的出現來改善資料安全的問題
HTTPS是「超文本傳輸安全協定」,HTTPS同樣可以用來傳輸資料,但它不同的是在傳輸過程中會加上SSL或TLS憑證,如果資料在途中被竊取,竊取時就只會看到經過加密過後的亂碼
使用者點擊網址或跟瀏覽器提交資料,瀏覽器會跟伺服器發送HTTP的請求,請求可能會包含(GET/POST)、瀏覽器資料等。伺服器接到資訊以後會進行解析,伺服器會根據解析然後回應請求,同時也會回傳HTTP的狀態碼(例如:200 、 404等...)HTTP狀態碼代表意思可以參考看看MDN,最後瀏覽器收到資訊後會解析,渲染在網頁上讓使用者看到相關的畫面
HTTPS是在HTTP的基礎上加上SSL/TLS進行加密協定,當使用者透過瀏覽器發送HTTPS請求後,伺服器會建立安全的連線,並使用SSL/TLS證書,這時候在使用者端會產生一個隨機的對稱金鑰,然後由伺服器的公開金鑰加密之後傳送,再由伺服器的私密金鑰來解析由公開金鑰加密過後的對稱金鑰。
因為有了加密的處理,所以在中間萬一被竊取資料,也會難以解讀,因為只有伺服器端的私密金鑰可以解析公開金鑰。
附上一張AWS提供的比較圖表
參考資料
AWS
為什麼HTTPS比HTTP重要?一次帶你了解兩者的差異和重要性
MDN HTTP狀態碼