「 http:// 」 中為何有兩根斜杠?
如果沒用的話,那為何不取消呢?
互聯網發明人Berners-Lee發明URL的時候規定的,沒有為什麼。
後來他本人也表示,這兩個杠完全沒有用,一個或者只有冒號就足夠了。
參考:http://news.bbc.co.uk/2/hi/technology/8306631.stm
同意@余天升 的答案,關於BBC的新聞國內也有過轉載[1]。
互聯網創始人蒂姆·伯納斯-李爵士承認,互聯網地址中http:後面的兩條斜線並無必要。
他對英國《泰晤士報》表示,他當年其實很容易找到不用這兩條斜線的解決辦法。網路用戶經常抱怨需要不斷輸入這兩條斜線。伯納斯-李爵士說,30年前設計互聯網的時候,沒想到這兩條線後來會給人帶來這麼多麻煩。
他以幽默的環保角度道歉說,真不知道這兩條線浪費了多少時間、列印墨水和紙張。
[1] http://www.cnbeta.com/articles/95565.htm完全有必要,個人認為取消了反不佳。
雖然確實有新聞說,發明者認為沒有必要加兩個斜杠(Sir Tim Berners Lee admits the forward slashes in every web address "were a mistake"),但個人認為那只是調侃(程序猿偶爾也要遷就一下娛樂媒體撒)。
實際上,即使沒有http四個字母和其後的冒號:,http協議照樣可以無憂運行,技術上想再風騷點都無所謂,但協議的根本應為易理解,易使用。首先,單個斜杠是必要的,斜杠/表示根目錄。現在討論下省略掉一個斜杠的情況:
假如A網站siteA引用到本站點下的目錄afile1,同時引用了B網站siteB目錄下的bfile2,現在較容易的寫法為:
&afile1&和&bfile2&倘若http後面跟的是單斜杠,顯然很難區分當前的斜杠表示的究竟是本站點下的根目錄,還是其他站點下的根目錄。也就是說第一個斜杠後面的路徑,可以引發歧義。為了規避歧義,引入不同的規則是最簡單的,雙斜杠無疑是最佳思路。個人覺得雙斜杠的意義,和HTTP協議中雙換行符分割消息頭和消息體思路是相同的。
ftp協議也是雙斜杠。包括後來新興的協議也都採用了此設計,如果真的浪費紙張的話,我想它們也沒必要跟風了吧?
當然,也可以從技術解析的角度考慮,可參考下文:html - URI starting with two slashes ... how do they behave?補充 許仙兒 的答案中提到的 html - URI starting with two slashes ... how do they behave? 技術角度。
因為除了 http:// 還是有 https://。為了安全考慮,在 https:// 下使用 http:// 的資源(css、js 和圖片)是不安全。但在 http:// 也不一定要完全使用 https:// 的資源,直接使用 http:// 會更加有效率。
那麼,怎麼使得資源使用代碼能在 http:// 下是 http://,在 https:// 下自動是 https://?答案是使用 // 即可。
即:&
推薦閱讀:
※精神力量有多强大?
※合併 HTTP 請求是否真的有意義?
※國內有哪些互聯網公司已經開始使用 HTTP/2 了?
※如何使用Nginx轉發非80埠的非HTTP請求?
※什麼是HTTP隧道,怎麼理解HTTP隧道呢?