2010-01-07 72 views
10

我最近碰到了一個網站,它在select元素上有一些有趣的樣式。我去調查,發現這(更改爲保護無辜者的名字):爲什麼協議可以從網頁上的絕對路徑中省略?

<script type="text/javascript" src="//www.domain.tld/file.js"></script> 

它的工作原理儘管HTTP:省略。什麼是離開協議的目的?

+2

有很多答案,但是沒有實際引用指定這種行爲的標準。我認爲這聽起來很有用,但如果它只是一個實現問題,我不想使用它。 – Teddy 2010-01-07 05:01:38

+1

@Teddy它顯然被稱爲「Class X7.45」,並在RFC 1808中有詳細說明http://www.w3.org/Addressing/rfc1808.txt – mwcz 2010-01-08 15:16:44

+0

參見http://stackoverflow.com/questions/11881054/is -a-url-starting-with-valid – koppor 2013-12-15 17:22:18

回答

9

它將使用您已經使用的協議。對於兼有httpshttp版本的網站很有用。

所以,如果你在https://www.domain.tld/file.js腳本將是https://www.domain.tld/file.js

如果您使用的是http://www.domain.tld/,該腳本將爲http://www.domain.tld/file.js

1

其目的是可以相對於包含頁面確定方案(即,httphttps)。如果您的代碼包含在可通過httphttps服務的多個頁面中,則此功能非常有用。

1

目的是「使用與當前URL相同的協議」 - 假設(?)有用,如果頁面可以達到http:https:(我很難考慮其他協議,但它可能是有用的,甚至這個也不是一個明確的用例)。

3

我認爲這對協議的相對路徑來說是短暫的。所以它應該使用與該會話使用的協議相同的協議。例如,如果你用http抓取那個頁面,那麼這個URL是相對於http協議的

相關問題