我最近碰到了一個網站,它在select元素上有一些有趣的樣式。我去調查,發現這(更改爲保護無辜者的名字):爲什麼協議可以從網頁上的絕對路徑中省略?
<script type="text/javascript" src="//www.domain.tld/file.js"></script>
它的工作原理儘管HTTP:
省略。什麼是離開協議的目的?
我最近碰到了一個網站,它在select元素上有一些有趣的樣式。我去調查,發現這(更改爲保護無辜者的名字):爲什麼協議可以從網頁上的絕對路徑中省略?
<script type="text/javascript" src="//www.domain.tld/file.js"></script>
它的工作原理儘管HTTP:
省略。什麼是離開協議的目的?
它將使用您已經使用的協議。對於兼有https
和http
版本的網站很有用。
所以,如果你在https://www.domain.tld/file.js
腳本將是https://www.domain.tld/file.js
。
如果您使用的是http://www.domain.tld/
,該腳本將爲http://www.domain.tld/file.js
。
其目的是可以相對於包含頁面確定方案(即,http
或https
)。如果您的代碼包含在可通過http
或https
服務的多個頁面中,則此功能非常有用。
目的是「使用與當前URL相同的協議」 - 假設(?)有用,如果頁面可以達到http:
和https:
(我很難考慮其他協議,但它可能是有用的,甚至這個也不是一個明確的用例)。
我認爲這對協議的相對路徑來說是短暫的。所以它應該使用與該會話使用的協議相同的協議。例如,如果你用http抓取那個頁面,那麼這個URL是相對於http協議的
有很多答案,但是沒有實際引用指定這種行爲的標準。我認爲這聽起來很有用,但如果它只是一個實現問題,我不想使用它。 – Teddy 2010-01-07 05:01:38
@Teddy它顯然被稱爲「Class X7.45」,並在RFC 1808中有詳細說明http://www.w3.org/Addressing/rfc1808.txt – mwcz 2010-01-08 15:16:44
參見http://stackoverflow.com/questions/11881054/is -a-url-starting-with-valid – koppor 2013-12-15 17:22:18