訪問http如何自動轉換爲https


一般情況下我們在瀏覽器中訪問一個網站都是以http形式訪問的。但是一些網站,比如購物網站由於需要支付,所以需要使用到更加安全的https的訪問方式。
那麼服務器是怎麼讓瀏覽器實現自動轉換爲訪問https的呢?

例子

在瀏覽器輸入http://www.taobao.com,並且按F12查看服務器給我們發來了什麼消息
在這裏插入圖片描述
注意上面我用紅色方框圈出的地方,後面我會講到。

接着,我們直接訪問https://www.taobao.com會怎麼樣呢?

在這裏插入圖片描述
仔細對比兩張圖的紅色方框部分,可以看出,訪問httphttps多了兩個文件(響應頭),其中第一個文件最重要,就是因爲這個文件,告訴瀏覽器應該以https重新訪問網站。
第一種圖右邊有兩個方框,主要就是這兩個信息Status Code: 307 Internal RedirectNon-Authoritative-Reason: HSTS,接下來就說下這兩個信息是什麼信息.


Status Code: 307 Internal Redirect

狀態代碼:307,交互重定向。其實也不一定是307,有些網站是302。
3xx狀態碼就是告訴客戶端,請求的URI不存在,需要去訪問另外一個URI。


HSTS

HSTS(HTTP Strict Transport Security)國際互聯網工程組織IETF正在推行一種新的Web安全協議。
HSTS最爲核心的是一個HTTP響應頭(HTTP Response Header)。正是它可以讓瀏覽器得知,在接下來的一段時間內,當前域名只能通過HTTPS進行訪問,並且在瀏覽器發現當前連接不安全的情況下,強制拒絕用戶的後續訪問要求。
HSTS Header的語法如下:

Strict-Transport-Security: <max-age=>[; includeSubDomains][; preload]
  • max-age是必選參數,是一個以秒爲單位的數值,它代表着HSTS Header的過期時間,通常設置爲1年,即31536000秒。
  • includeSubDomains是可選參數,如果包含它,則意味着當前域名及其子域名均開啓HSTS保護。
  • preload是可選參數,只有當你申請將自己的域名加入到瀏覽器內置列表的時候才需要使用到它。關於瀏覽器內置列表,下文有詳細介紹。

比如上面的網站中:
在這裏插入圖片描述
有了這個就是告訴瀏覽器接下來的31536000s中,使用https訪問網站。

完整的HSTS流程圖如下:
在這裏插入圖片描述


撩我?可以搜索我的公衆號:Kyda
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章