http切換到https



分兩種情況。

第一種是會發起一次 HTTP 以及一次 HTTPS:當你訪問 HTTP URL,會發起一個普通的 HTTP 請求,服務器通過某些配置,會返回一個 301 狀態碼,並 Location 到對應的 HTTPS URL 上。瀏覽器接着重定向,發起 HTTS 請求。需要補充的是,當你后面再次訪問這個 HTTP 請求時,因為存在瀏覽器緩存,可能直接在瀏覽器端就重定向了,這樣的話只有一個 TCP 請求。

不過由於 HTTP -> HTTPS 重定向的過程是存在安全隱患的,中間人可以以這個 HTTP 請求為突破口,讓你的 HTTPS 無用武之地。

因此大家搞了一個協議,叫做 Strict-Transport-Security (HSTS)。大致意思是如果服務器在 HTTPS 請求里返回了 Strict-Transport-Security 響應頭,那么后面瀏覽器只能通過 HTTPS 請求訪問這個域名的 URL。如果用戶訪問了對應的 HTTP URL,瀏覽器會自動切換到 HTTPS URL,只會有 443,沒有 80.

不過理論上這樣也有隱患,那就是第一次訪問某個域名,而且使用的又是 HTTP,瀏覽器沒有相應的 HSTS 記錄,所以還是會發起一次 HTTP 請求,如果正好這個時候有中間人,就不安全了。所以 Chrome 等瀏覽器還會預置一批 HSTS 域名名單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM