http切换到https
分兩種情況。
第一種是會(huì)發(fā)起一次 HTTP 以及一次 HTTPS:當(dāng)你訪問(wèn) HTTP URL,會(huì)發(fā)起一個(gè)普通的 HTTP 請(qǐng)求,服務(wù)器通過(guò)某些配置,會(huì)返回一個(gè) 301 狀態(tài)碼,并 Location 到對(duì)應(yīng)的 HTTPS URL 上。瀏覽器接著重定向,發(fā)起 HTTS 請(qǐng)求。需要補(bǔ)充的是,當(dāng)你后面再次訪問(wèn)這個(gè) HTTP 請(qǐng)求時(shí),因?yàn)榇嬖跒g覽器緩存,可能直接在瀏覽器端就重定向了,這樣的話只有一個(gè) TCP 請(qǐng)求。
不過(guò)由于 HTTP -> HTTPS 重定向的過(guò)程是存在安全隱患的,中間人可以以這個(gè) HTTP 請(qǐng)求為突破口,讓你的 HTTPS 無(wú)用武之地。
因此大家搞了一個(gè)協(xié)議,叫做 Strict-Transport-Security (HSTS)。大致意思是如果服務(wù)器在 HTTPS 請(qǐng)求里返回了 Strict-Transport-Security 響應(yīng)頭,那么后面瀏覽器只能通過(guò) HTTPS 請(qǐng)求訪問(wèn)這個(gè)域名的 URL。如果用戶訪問(wèn)了對(duì)應(yīng)的 HTTP URL,瀏覽器會(huì)自動(dòng)切換到 HTTPS URL,只會(huì)有 443,沒(méi)有 80.
不過(guò)理論上這樣也有隱患,那就是第一次訪問(wèn)某個(gè)域名,而且使用的又是 HTTP,瀏覽器沒(méi)有相應(yīng)的 HSTS 記錄,所以還是會(huì)發(fā)起一次 HTTP 請(qǐng)求,如果正好這個(gè)時(shí)候有中間人,就不安全了。所以 Chrome 等瀏覽器還會(huì)預(yù)置一批 HSTS 域名名單。
總結(jié)
以上是生活随笔為你收集整理的http切换到https的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Unity Shaders】Trans
- 下一篇: js渐渐入门之懒人框架- laz.js