首先需要知道的是通訊協(xié)議一共分為7個(gè)層次。
而http和https都在應(yīng)用層中曹阔,https和http之間差的就是一個(gè)所謂的安全層,因此可以理解為https=http+TSL(或SSL)隔披。
在nginx中當(dāng)你配置一個(gè)域名得時(shí)候赃份,就能很直觀的發(fā)現(xiàn),若是使用http則只要80端口就行了奢米,而https就需要443端口抓韩,而且還需要配置安全證書(shū)。這是由于鬓长,http的數(shù)據(jù)參數(shù)是通過(guò)明文傳輸?shù)内怂瑪?shù)據(jù)容易被第三者獲取,https加了一個(gè)安全層以后涉波,數(shù)據(jù)就經(jīng)過(guò)加密英上,尤其是雙向認(rèn)證以后,第三者就很難插足了啤覆。
最后遇到一個(gè)坑苍日,就是我把https的域名配置在80端口,當(dāng)我訪問(wèn)的時(shí)候發(fā)現(xiàn)窗声,依舊能獲取相恃,所以就很納悶https不是需要443端口么。然后我又把去瀏覽器輸入這個(gè)網(wǎng)址笨觅,以https開(kāi)頭如:https://www.xxx.com拦耐,最后發(fā)現(xiàn)訪問(wèn)完以后,復(fù)制這個(gè)網(wǎng)址见剩,網(wǎng)址就變成了http://www.xxx.com.
我就在納悶揩魂,理論上不是應(yīng)該報(bào)錯(cuò)么,怎么會(huì)自動(dòng)解析成http呢炮温,一開(kāi)始懷疑的是,當(dāng)輸入域名的時(shí)候牵舵,DNS域名解析的時(shí)候柒啤,會(huì)先訪問(wèn)443端口倦挂,若訪問(wèn)不成功,則訪問(wèn)80端口担巩,或者是瀏覽器在訪問(wèn)域名的時(shí)候方援,若443端口無(wú)法訪問(wèn)就訪問(wèn)80端口。因此就做了一個(gè)測(cè)試涛癌。首先將80端口配置好犯戏,443端口禁用了,然后在服務(wù)器訪問(wèn) https://www.xxx.com 若是DNS做這樣操作的話拳话,那訪問(wèn)的時(shí)候肯定會(huì)訪問(wèn)成功先匪。但是一訪問(wèn)發(fā)現(xiàn)訪問(wèn)不通,然后訪問(wèn) http://www.xxx.com 發(fā)現(xiàn)可以訪問(wèn)弃衍。接著去瀏覽器中訪問(wèn) https://www.xxx.com呀非。居然可以訪問(wèn)。這說(shuō)明镜盯,https在未配置443端口得時(shí)候訪問(wèn)岸裙,瀏覽器會(huì)跳轉(zhuǎn)到80端口。