2014-01-22 127 views
4

爲什麼要用<link href="//something.com/style.css" rel="stylesheet">代替http://https://之前的域名?爲什麼在HTML中使用href =「//而不是href =」http://?

如果我們使用href=//它是否改變鏈接?就像在SSL模式下一樣,它會自動更改爲https://

+0

http://stackoverflow.com/questions/4978235/absolute-urls-omitting-the-protocol-scheme-in-如果目標主機也配置爲通過SSL正確地提供資源,則爲了保留這一個 – jcho360

回答

7

是的,它會使用當前的協議。

即,如果當前頁面是https它將使用https訪問href

如果http那麼鏈接訪問通過普通http

如果託管頁面是https,這將阻止瀏覽器警告,並且比普通的http鏈接更安全。

+1

「這將防止瀏覽器警告」。如果不是,那麼這些行爲的範圍從超時到SSL證書警告到404s。 – Palpatim

+0

這隻有在資源的域支持與正在訪問的託管頁面相同的協議的情況下才有效。 – SilverlightFox

+0

感謝您的詳細。 – Swagata

4

就像您猜測的那樣:使用href =「// ...」而不指定URI方案允許它動態地匹配用於訪問資源的任何協議,例如http或https。

這實際上只是一個相對路徑的例子,但是與協議有關。

來源:IETF的URI syntax documentation,部分3.1(方案)& 4.2(相對參考)

相關問題