什麼是 HTTP
在講述什麼是 HTTPS 之前,必須先了解什麼是 HTTP。
HTTP (超文本傳輸協定,HyperText Transfer Protocol),為了定義網際網路傳輸規則而生。
當我們在家裡打開瀏覽器進入網站時,會經過以下步驟。
瀏覽器(家裡電腦)會透過網路傳送網址給伺服器(儲存網站資料的地方);
伺服器接到指令,回傳資料給瀏覽器,並形成畫面。
而過程中的傳輸指令,就是以 HTTP 寫成的。
舉個貼近生活的例子。
當我們到餐廳時,會先拿菜單點餐,再將菜單交給老闆;
老闆收到菜單後,著手準備料理,並送到餐桌上。
上面提到的「我們」,指的就是瀏覽器;「菜單」,其實就是 HTTP;而「老闆」則是伺服器。
HTTPS:加密後的 HTTP
HTTPS(HyperText Transfer Protocol Secure), 簡單說就是加密後的 HTTP。
資料與美食有一個很大的不同,就是資料存在個人隱私。
當我們把銀行帳號密碼提交給伺服器時,若有人從中間攔截,你的個人資料就會被看光光囉。
不幸的是,HTTP 在提交資料的過程中使用明文傳輸,也就是人類看得懂的語言。
因此,駭客可以輕鬆解讀裡面的內容。
如果這時是使用 HTTPS,它會在傳輸前先把內容改成密文。
送達瀏覽器後,再透過鑰匙(TLS/SSL)把它解密為明文。
至於從加密到解密如何進行,可以搜尋關鍵字「TLS 交握」。
也可以參考由 Cloudflare 撰寫的TLS 握手中發生什麼事情?| SSL 握手。