基於這道題,我們需要先認識http和https的區別;了解https的通信過程;再回答測試需要關注的點。
一、http和https的區別
(圖片來源網絡:testerhome.com)
Http和Https都是位於OSI(計算機或通信系統間互聯標准體系)的第七層:應用層,位於該層的還有SMTP和FTP協議。
Http協議運行在TCP之上。所有傳輸的內容都是明文,客戶端和服務器端都無法驗證對方的身份。
Https是Http運行在SSL/TLS(安全套接字層/傳輸層安全)之上,SSL/TLS運行在TCP之上。所有傳輸的內容都經過加密,加密采用對稱加密,但對稱加密的密鑰用服務器方的證書進行了非對稱加密。此外客戶端可以驗證服務器端的身份,如果配置了客戶端驗證,服務器方也可以驗證客戶端的身份。
一句話:Http+加密+認證+完整性保護=Https
二、https的通信過程
(圖片來源網絡:testerhome.com)
上圖整個過程就是Https過程,可以這樣理解,去除prepare部分、去除步驟2、3、4部分就是Http過程,只是Http中客戶端和服務器通信時沒有加密(步驟5、6去掉加密)。
三、測試需要關注的點
1.因為Https過程比Http過程復雜,因此一個Https請求/響應的時間會比Http長。舉個栗子,相同網絡情況下,通過Charles抓包,Https的Duration為968ms,Http的Duration為729ms,兩者的相差時間很小,幾乎無感;
2.Https存在CA證書,需要關注證書的有效時限。但是這個一般也是很少關注的點。
3.需要測試下相關聯的業務系統在跳轉的時候會不會有問題,比如http調用https的時候就可能會出問題,這個在業務部分切換到https上的時候,特別需要注意。