HTTP的全名為HyperText Transfer Protocol,與HTTPS同樣是伺服器與瀏覽器傳輸資料的通訊基礎,那有沒有這個s差在哪裡呢?白話來說可以把這個s當作”secure”,也就是安全的意思,簡單來說HTTPS是比HTTP還更加安全的傳輸協定。
那為什麼HTTPS比HTTP來得安全呢?以下用白話的方式來說明兩點主要原因
- 資料在Web與Server端中傳輸時,會毫不掩飾地呈現出來(Plain text),也就是說任何能夠介入Web與Server當中的人,都能夠看到你想傳輸的資料是什麼。 舉個實際案例,大家應該都有在網路上用信用卡購物的經驗吧?假設你今天所使用的購物網站的交易系統是以HTTP打造的,只要有心人士刻意介入你的瀏覽器與購物網站所使用的server之間,他就能看到你用來交易的信用卡號,你的卡就有很高的風險會被盜刷
- 不會對雙方的認證進行驗證。也就是說資料在傳輸的過程當中,Web端與Server端都不會確認傳送者以及接收者的身分,也就是過程中有可能會被有心人士竄改內容。 舉個例子,如果你今天寫信想要跟某堂課的助教請假,信件上面寫說自己發燒頭痛沒辦法去上課,但這時後有個平常跟你非常不好的人想要惡搞你,在你把信件傳送到助教的過程中攔截了這封信,並且把信件內容修改成”助教我討厭你,所以我不想去上課”
從上述缺陷當中可以發現HTTP有一個很大的問題,那就是這些資料都毫不掩飾地顯示出來,基於這樣的缺點,HTTPS針對原本的HTTP做了一些改善,其中最顯著的就是”加密”的部分,原本毫不掩飾顯示出來的資料,在HTTPS這個協定下,資料在傳輸的過程中會進行加密,也就是說沒有這個密碼的人是看不到資料的。
一般人只要了解以上差異就夠了,其他比較複雜的部份可以選擇性地了解,以下我會條列HTTPS與HTTP之間的差異:
- 在HTTP裡,URL會以”http://”作為開頭,HTTPS則以”https://”為開頭
- HTTP在溝通中使用”80″的port number,而HTTPS使用”443″
- HTTP比較不安全,HTTPS比較安全
- HTTP應用於Application Layer,而HTTPS應用於Transport Layer
- 在HTTP中,沒有任何的加密;而HTTPS有使用加密技術
- HTTP不需要任何的憑證,而HTTPS需要SSL的憑證