原文來自Bjørn Johansen
原文鏈接:https://bjornjohansen.no/www-or-not?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
歷史背景
盡管人們總是把“域名”和“主機名”這兩個詞混為一談,但這它們是有區(qū)別的,而且不只是語義上的區(qū)別。我會簡單介紹一下這兩個詞,以示其區(qū)別:
作為一個IT管理員,你的網(wǎng)絡(luò)系統(tǒng)就是你的域。你需要給這個域起名,并登記在域名系統(tǒng) (DNS)中 ,比如說,你可以起名為“example.com”。域的下面是主機,每個聯(lián)網(wǎng)的設(shè)備都可以算作一個主機。
在你的域內(nèi),服務(wù)于萬維網(wǎng)(WWW)文件的機器會自動獲得主機名“www”,因此你的完全限定域名(FQDN,同時帶有主機名和域名的名稱)就是www.example.com。不管其他主機有沒有網(wǎng)頁服務(wù)器,域內(nèi)其他主機的名字也會變成帶“www”的,這樣能夠更好地管理網(wǎng)絡(luò)系統(tǒng)中的主機。
要想使用“example.com”這個域內(nèi)的網(wǎng)頁服務(wù)器,你就需要使用名為www.example.com的主機。順便說一句:在互聯(lián)網(wǎng)早期階段,還沒有虛擬主機這回事。 所有的網(wǎng)頁服務(wù)器都要服務(wù)于同一個網(wǎng)站(起碼是同一個IP地址)。只要主機名能指向正確的IP地址,用什么名字都沒關(guān)系。
“裸域名”,也就是沒有“www”的域名,比如“example.com”,在DNS協(xié)議中被稱為“根域名” (the origin)。 上世紀(jì)90年代中期,萬維網(wǎng)越來越普及,一些管理員開始把根域名指向和網(wǎng)頁服務(wù)器主機同樣的IP地址。這樣,網(wǎng)頁訪客只需在瀏覽器中輸入“example.com”就可訪問,而不用輸入完整的主機名“www.example.com”。
然后,搜索引擎優(yōu)化來了
從根域名“example.com”和主機名“www.example.com”可以指向不同的IP地址開始,1997年1月后,二者也可以指向同一IP地址下的不同網(wǎng)頁。對搜索引擎優(yōu)化(Search Engine Optimization,SEO)有所了解的人開始告訴我們,必須要選擇一個規(guī)范的主機名,而且另一個名字也要指向這個規(guī)范的主機名 ,并使用 HTTP 301響應(yīng)代碼。
這也是有道理的,但是選哪一個呢?如果只考慮SEO,選哪個都沒關(guān)系。但是還有很多SEO以外的問題,下面我會繼續(xù)解釋。
人們對URL的理解
本世紀(jì)初,我在一家營銷機構(gòu)工作,大家很擔(dān)心如果我們在網(wǎng)址里省略“www”,人們可能會意識不到這是一個萬維網(wǎng)地址。那時,在網(wǎng)址中省略http://也是沒過多久的事。此外,由于一些遺留問題,我個人傾向于使用完整的“正確”主機名,即“ www.example. com”。
現(xiàn)在則大不相同了。如果你有一個常見的頂級域名,那么加不加www大家都會明白的。 而且,一個版本名稱現(xiàn)在可以重新指向另一個地址 。因此,如果你的規(guī)范主機名是“www.example. com”,而你在印刷廣告中只使用看起來更簡潔的“example.com”,這也是可行的。不過,如果你的頂級域名比較新,比如.beer,那么加上www會比較好,因為人們可能認(rèn)不出這是一個網(wǎng)址。
不加www更好看更簡潔
我得承認(rèn):“example.com”更短,讀起來更容易。你試試,是不是沒法一口氣讀完“www”吧?而且,不加www后,名稱占用的空間也更小。因此,人們開始省略“www”、直接把根域名作為主機名,這也是可以理解的了。
那為什么還在糾結(jié)加不加www呢?
為什么我們還在爭論這個問題?人們不能喜歡什么就用什么嗎?
當(dāng)然可以。
但是,假如你是網(wǎng)站管理員,你在決定前可能會想深思熟慮一番,因為在使用網(wǎng)絡(luò)上的大部分東西前,比如cookie,我們都沒有好好思考過。
Cookie會被發(fā)送到所有的子域
在主機名下設(shè)置的 cookie也會被發(fā)送到所有的子域,也就是說,如果在“example.com”的網(wǎng)站設(shè)置一個cookie,瀏覽器在瀏覽“www.example.com”時也會發(fā)送這個 cookie。
這聽起來是件好事,因為反正它們是同一個網(wǎng)站,對吧?但是,這個cookie也會被發(fā)送到“cdn.example.com”、“email.example.com”、“intranet.example.com”等等任何包含“.example.com”的第三方服務(wù)網(wǎng)站。很多第三方服務(wù)網(wǎng)站都是這樣共享你的cookie。
而對于在“www.example.com”下設(shè)置的cookie,是不會發(fā)送到以上這些網(wǎng)站的。你的瀏覽器能夠識別出它們不是“子服務(wù)”,而是完全不同的服務(wù),因此不會發(fā)送cookie。
不必要的cookie會影響網(wǎng)頁運行速度
每訪問一次網(wǎng)頁服務(wù)器,瀏覽器都會發(fā)送一次HTTP 和cookie。因此,如果你的cookie設(shè)在根域名“example.com”下,那么每當(dāng)你訪問 “email.example.com”或者是“intranet.example.com”的時候,瀏覽器都會發(fā)送cookie。這會導(dǎo)致網(wǎng)頁的運行速度下降,影響用戶體驗 。
第三方可以讀取cookie
所以,如果你的主機名是根域名(“example.com”),并且可以登錄到內(nèi)容管理系統(tǒng)(CMS),那在你登錄期間,CMS會給你的瀏覽器發(fā)送一個cookie。接著,如果你訪問“someinternalservice.example.com”(內(nèi)部服務(wù)),該網(wǎng)站的管理員就可以訪問并利用這個cookie,以你的名義登進CMS里的“example.com”。
類似的,你訪問“email.example.com”(郵箱)的時候,你的CDN服務(wù)商也可以登進你的郵件服務(wù),加載出大量含有“example.com”的網(wǎng)站,比如“static.example.com”等等。
如果你擔(dān)心網(wǎng)站上內(nèi)容的安全,那就應(yīng)該使用有www前綴的主機名。 如果這都不能讓你決定到底要不要前綴,那我就無話可說了。HTTPS和雙因素認(rèn)證(Two-factor authentication,2FA)都不能確保你網(wǎng)站的安全,盡管2FA通常很有用,不過IP限制這樣的安全措施能起到一定幫助。
子域的cookie可以在全域分享
如果你在例如“sso.example.com”這樣的子域上有一項服務(wù),RFC 6265使你能夠在子域上設(shè)置一個cookie,并和“example.com”或“www.example.com”共享。因此,使用有前綴的主機名能使操作更加靈活。
DNS根域名不能是CNAME (規(guī)范名字)
說到靈活性,我們又要談回DNS了。
DNS中有一項限制,即根域名的記錄類型必須為A,意思是它必須指向一個固定的IP地址。
當(dāng)你的站點越來越龐大,你可能會將其轉(zhuǎn)向托管服務(wù),或者希望將其指向Web應(yīng)用防火墻或者DDoS緩解服務(wù)。這時,可以使用CNAME 記錄,把你的主機名指向另一個靈活的主機名。這個新的主機名由托管商根據(jù)你的流量和需求來選擇和管理。
如果你的主機名在根域名(“example.com”)下,你就沒辦法使用CNAME。但是,有前綴的主機名就不會遇到這個問題。因此,如果你想有更多選擇的機會,那一開始就應(yīng)該使用有www的主機名。
結(jié)論:還是加上www吧
用不用www是有區(qū)別的。沒有www,根域名的確看起來更簡潔,但這只是讓瀏覽器搜索欄更簡潔罷了 。你完全可以用“www.example.com”作為主機名,同時在其他地方使用不帶www的名稱,因為即使用戶輸入不帶www的名稱,瀏覽器也會自動跳轉(zhuǎn)到正確的頁面。
使用帶www的全稱作為主機名的好處多多:網(wǎng)頁運行優(yōu)化、安全可靠,而且十分靈活。
這回應(yīng)該能終結(jié)這場爭論了:加上www吧!
“久謙咨詢”即將移步新賬號“棧外”!歡迎各位讀者閱讀及關(guān)注。
友情提示:A5官方SEO服務(wù),為您提供權(quán)威網(wǎng)站優(yōu)化解決方案,快速解決網(wǎng)站流量異常,排名異常,網(wǎng)站排名無法突破瓶頸等服務(wù):http://www.admin5.cn/seo/zhenduan/
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!