HTTP是什么:
首先,我們知道HTTP的全名是超文本傳輸協(xié)議,主要是用來(lái)供客戶(hù)端(一般為瀏覽器)與服務(wù)器之間傳遞WEB數據的一種應用層協(xié)議。
而原始的HTTP協(xié)議只規定了傳輸數據包的格式以及互相之間協(xié)商好的字段,這些格式和字段是客戶(hù)端與服務(wù)器都能理解的內容。
但是HTTP協(xié)議的整個(gè)應用層數據包(TCP報文的payload),所有的內容都是明文的。
也就是說(shuō),當我們從傳輸路徑中某個(gè)位置使用抓包工具或其他手段截取到這個(gè)數據包,就能輕松的獲取其中的請求和響應內容。
舉個(gè)例子:
A和B用一種語(yǔ)言對話(huà)(例如中文),當黑客C使用手段截取的A和B的談話(huà)內容,他只需要自己會(huì )中文或找個(gè)會(huì )中文的人進(jìn)行翻譯就知道A和B的談話(huà)內容了。
HTTPS是什么:
我們了解了HTTP大概的工作原理,就知道HTTP僅僅實(shí)現了一種數據通訊的協(xié)議,但是是并不安全的。
而如何讓客戶(hù)端和服務(wù)器之間的數據交換變得安全,那么就需要有以下兩個(gè)措施:
1.傳輸的數據內容是加密的而非明文的
2.瀏覽器在訪(fǎng)問(wèn)服務(wù)器的時(shí)候,能夠驗證服務(wù)器的身份(即我當前訪(fǎng)問(wèn)的服務(wù)器就是我想要訪(fǎng)問(wèn)的服務(wù)器,而非假冒的),避免中間人攻擊(黑客在中間假冒客戶(hù)端和服務(wù)器,兩邊進(jìn)行欺騙)
當解決了以上兩個(gè)問(wèn)題,那么HTTP就變成了一個(gè)安全的傳輸協(xié)議,即我們要學(xué)習的HTTPS協(xié)議。
舉個(gè)例子:
A找到B的時(shí)候,要求B出示一個(gè)證明身份的證件(例如身份證),確認了B的身份后。采用一種黑客無(wú)法截取的方式(具體方式在后面詳細解釋?zhuān)┥套h了一個(gè)密碼本,用來(lái)加密要交流的內容。這時(shí)A和B的交流內容都通過(guò)密碼本加密,C截取到也無(wú)法解密。
HTTP和HTTPS的區別:
HTTP是不安全的,傳輸內容是明文的,不能確定服務(wù)器的真實(shí)身份
HTTPS是安全的,傳輸內容是加密的,可以確定服務(wù)器的身份