http協議為什么打不開https站點
在訪問一個https的站點,比如 https://www.aaa.com,首次訪問時,訪問的地址是 http://www.aaa.com,(不加S),出現的是網站不可用,打不開,再次使用https進行訪問,就能正常打開。隨后在使用http協議進行訪問,會自動重定向到https的域名,這是瀏覽器緩存之后自動重定向的行為,或者是服務器端沒有做好http到https站點的重定向?
其實是這樣的,第一次訪問http頁面,由於服務器端沒有做好301重定向,所以出現鏈接斷開無法訪問,第二次正常訪問https站點時,支持HSTS的瀏覽器響應頭含有Strict-Transport-Security: max-age=31536000;意思是在接下來的一年(即31536000秒)中,瀏覽器只要向xxx或其子域名發送HTTP請求時,必須采用HTTPS來發起連接。比如,用戶點擊超鏈接或在地址欄輸入 http://xxx/ ,瀏覽器應當自動將 http 轉寫成 https,然后直接向 https://xxx/ 發送請求。
瀏覽器支持
HSTS對瀏覽器的支持不盡相同:
Chromium和Google Chrome從4.0.211.0版本開始支持HSTS
Firefox 4及以上版本
Opera 12及以上版本
Safari從OS X Mavericks起
Internet Explorer從Windows 10技術預覽版開始支持,之后微軟又向IE11用戶推送了支持HSTS的更新。