域名www,到底要不要加?

曆史背景

盡管人們總是把“域名”和“主機名”這兩個詞混為一談,但這它們是有區別的,而且不隻是語義上的區別。我會簡單介紹一下這兩個詞,以示其區別:

作為一個IT管理員,你的網絡係統就是你的域。你需要給這個域起名,並登記在域名係統(DNS)中,比如說,你可以起名為“example.com”。域的下麵是主機,每個聯網的設備都可以算作一個主機。

在你的域內,服務於萬維網(WWW)文件的機器會自動獲得主機名“www”,因此你的完全限定域名(FQDN,同時帶有主機名和域名的名稱)就是www.example.com。不管其他主機有沒有網頁服務器,域內其他主機的名字也會變成帶“www”的,這樣能夠更好地管理網絡係統中的主機。

要想使用“example.com”這個域內的網頁服務器,你就需要使用名為www.example.com的主機。順便說一句:在早期階段,還沒有虛擬主機這回事。所有的網頁服務器都要服務於同一個網站(起碼是同一個IP地址)。隻要主機名能指向正確的IP地址,用什麽名字都沒關係。

“裸域名”,也就是沒有“www”的域名,比如“example.com”,在DNS協議中被稱為“根域名”(theorigin)。上世紀90年代中期,萬維網越來越普及,一些管理員開始把根域名指向和網頁服務器主機同樣的IP地址。這樣,網頁訪客隻需在瀏覽器中輸入“example.com”就可訪問,而不用輸入完整的主機名“www.example.com”。

然後,來了

從根域名“example.com”和主機名“www.example.com”可以指向不同的IP地址開始,1997年1月後,二者也可以指向同一IP地址下的不同網頁。對搜寻引擎優化(SearchEngineOptimization,SEO)有所了解的人開始告訴我們,必須要選擇一個規範的主機名,而且另一個名字也要指向這個規範的主機名,並使用HTTP301響應代碼。

這也是有道理的,但是選哪一個呢?如果隻考慮SEO,選哪個都沒關係。但是還有很多SEO以外的問題,下麵我會繼續解釋。

人們對URL的理解

本世紀初,我在一家營銷機構工作,大家很擔心如果我們在網址裏省略“www”,人們可能會意識不到這是一個萬維網地址。那時,在網址中省略http://也是沒過多久的事。此外,由於一些遺留問題,我個人傾向於使用完整的“正確”主機名,即“www.example.com”。

現在則大不相同了。如果你有一個常見的頂級域名,那麽加不加www大家都會明白的。而且,一個版本名稱現在可以重新指向另一個地址。因此,如果你的規範主機名是“www.example.com”,而你在印刷廣告中隻使用看起來更簡潔的“example.com”,這也是可行的。不過,如果你的頂級域名比較新,比如.beer,那麽加上www會比較好,因為人們可能認不出這是一個網址。

不加www更好看更簡潔

我得承認:“example.com”更短,讀起來更容易。你試試,是不是沒法一口氣讀完“www”吧?而且,不加www後,名稱占用的空間也更小。因此,人們開始省略“www”、直接把根域名作為主機名,這也是可以理解的了。

那為什麽還在糾結加不加www呢?

為什麽我們還在爭論這個問題?人們不能喜歡什麽就用什麽嗎?

當然可以。

但是,假如你是網站管理員,你在決定前可能會想深思熟慮一番,因為在使用網絡上的大部分東西前,比如cookie,我們都沒有好好思考過。

Cookie會被發送到所有的子域

在主機名下設置的cookie也會被發送到所有的子域,也就是說,如果在“example.com”的網站設置一個cookie,瀏覽器在瀏覽“www.example.com”時也會發送這個cookie。

這聽起來是件好事,因為反正它們是同一個網站,對吧?但是,這個cookie也會被發送到“cdn.example.com”、“email.example.com”、“intranet.example.com”等等任何包含“.example.com”的第三方服務網站。很多第三方服務網站都是這樣共享你的cookie。

而對於在“www.example.com”下設置的cookie,是不會發送到以上這些網站的。你的瀏覽器能夠識別出它們不是“子服務”,而是完全不同的服務,因此不會發送cookie。

不必要的cookie會影響網頁運行速度

每訪問一次網頁服務器,瀏覽器都會發送一次HTTP和cookie。因此,如果你的cookie設在根域名“example.com”下,那麽每當你訪問“email.example.com”或者是“intranet.example.com”的時候,瀏覽器都會發送cookie。這會導致網頁的運行速度下降,影響用戶體驗。

第三方可以讀取cookie

所以,如果你的主機名是根域名(“example.com”),並且可以登錄到內容管理係統(CMS),那在你登錄期間,CMS會給你的瀏覽器發送一個cookie。接著,如果你訪問“someinternalservice.example.com”(內部服務),該網站的管理員就可以訪問並利用這個cookie,以你的名義登進CMS裏的“example.com”。

類似的,你訪問“email.example.com”(郵箱)的時候,你的CDN服務商也可以登進你的郵件服務,加載出大量含有“example.com”的網站,比如“static.example.com”等等。

如果你擔心網站上內容的安全,那就應該使用有www前綴的主機名。如果這都不能讓你決定到底要不要前綴,那我就無話可說了。HTTPS和雙因素認證(Two-factorauthentication,2FA)都不能確保你網站的安全,盡管2FA通常很有用,不過IP限製這樣的安全措施能起到一定幫助。

子域的cookie可以在全域分享

如果你在例如“sso.example.com”這樣的子域上有一項服務,RFC6265使你能夠在子域上設置一個cookie,並和“example.com”或“www.example.com”共享。因此,使用有前綴的主機名能使操作更加靈活。

DNS根域名不能是CNAME(規範名字)

說到靈活性,我們又要談回DNS了。

DNS中有一項限製,即根域名的記錄類型必須為A,意思是它必須指向一個固定的IP地址。

當你的站點越來越龐大,你可能會將其轉向托管服務,或者希望將其指向Web應用防火牆或者DDoS緩解服務。這時,可以使用CNAME記錄,把你的主機名指向另一個靈活的主機名。這個新的主機名由托管商根據你的流量和需求來選擇和管理。

如果你的主機名在根域名(“example.com”)下,你就沒辦法使用CNAME。但是,有前綴的主機名就不會遇到這個問題。因此,如果你想有更多選擇的機會,那一開始就應該使用有www的主機名。

結論:還是加上www吧

用不用www是有區別的。沒有www,根域名的確看起來更簡潔,但這隻是讓瀏覽器搜寻欄更簡潔罷了。你完全可以用“www.example.com”作為主機名,同時在其他地方使用不帶www的名稱,因為即使用戶輸入不帶www的名稱,瀏覽器也會自動跳轉到正確的頁麵。

使用帶www的全稱作為主機名的好處多多:網頁運行優化、安全可靠,而且十分靈活。

這回應該能終結這場爭論了:加上www吧!

作者:久謙谘詢(頭條)

頂: 1踩: 0

來源:盧鬆鬆博客



相關說明:

1、VIP會員無限製任意下載,免積分。立即前往開通>>

2、下載積分可通過日常 簽到綁定郵箱 以及 積分兌換 等途徑獲得!

3、本站資源大多存儲在雲盤,如出現鏈接失效請評論反饋,如有密碼,均為:www.ipipn.com。

4、所有站內資源僅供學習交流使用。未經原版權作者許可,禁止用於任何商業環境,否則後果自負。為尊重作者版權,請購買正版作品。

5、站內資源來源於網絡公開發表文件或網友分享,如侵犯您的權益,請聯係管理員處理。

6、本站提供的源碼、模板、軟件工具等其他資源,都不包含技術服務,請大家諒解!

7、源碼、模板等資源會隨著技術、壞境的升級而存在部分問題,還請慎重選擇。

PS.源碼均收集自網絡,如有侵犯閣下權益,請發信件至: admin@ipipn.com .


源站網 » 域名www,到底要不要加?

發表評論

讚助本站發展 維持服務器消耗

全站源碼免費下載 立刻讚助