網址鏈接是否區分大小寫?

原先我一直以為網址是不區分大小寫的,後來隨著微博的興起,發現縮網址的網站的短鏈接都是區分大小寫的。我做一個小實驗,我常訪問的網站的域名不論是大寫輸入還是大小寫混合輸入都是可以訪問的,例如 http://ZHIhu.com,但是縮網址的短鏈接我更改任意字元的大小寫都會出錯,例如 goo.gl/lgvxL 改成 goo.gl/lgvxl 就會出錯。這個小實驗在 chrome 和 IE8 結果都一樣。


網址的基本結構是:[協議]://[域名]/[路徑]

協議和域名部分不分大小寫。路徑部分是否區分大小寫則不一定,要看具體網站後台是如何實現的。

比如,如果伺服器是直接將路徑映射到文件系統中去找,則不同平台上有不同實現:Mac OS X 默認的文件系統(HFS case-insensitive) 是不分大小寫的、Windows 上的 NTFS 也是。而 Linux 系統常用的 ext3/4 則是需要區分大小寫的。所以如果伺服器不做額外的操作,則會根據文件系統不同有不同效果。

而像知乎這種應用伺服器則又有不同。此時路徑並不指向文件系統的某個文件,而是作為字元串交有應用來處理。比如,知乎使用的 Tornado 伺服器是使用正則表達式來進行匹配路徑。正則表達式可以通過不同寫法或者標誌符來控制是否區分大小寫。

繼新提到的很多短鏈接服務區分路徑大小寫,這是為了增加字元基數、縮短地址長度做出的取捨。假設只使用數字和字母做路徑部分,如果不區分大小寫,則只有 10+26 = 36 個字元可以使用。 5 個字元長的地址就只能有 36^5 = 60 466 176 種組合。而若區分大小寫,則有 10 + 26 + 26 = 62 個字元可用,同樣 5 個字元長的地址就有 62^5 = 916 132 832 種組合。短鏈接地址為了儘可能短,必須要增大基數,因此選擇了區分大小寫。

如果網址只是給機器使用的話,可以不用計較是否大小寫。但實際上難免會遇到要將網址通過手工輸入到地址欄的情況(比如將印刷的地址抄寫到瀏覽器中訪問)。為了易用性的考慮,在條件允許的情況下應該儘可能的不區分大小寫。如果需要區分,則儘可能要對不同寫法的地址進行重定向。知乎在這一點上就做得不是很好,比如這個問題如果通過 http://www.zhihu.com/Question/19572705 就無法訪問。應該修改 Tornado 伺服器的正則表達式設置,使其能匹配大寫、混合大小寫的地址,或者自動將混合大小寫的地址重定向到 http://www.zhihu.com/question/19572705


域名不分大小寫。不管幾級域名,都不分。Zhihu.com, zhIHu.com, http://WWw.zhihU.cOM,都一樣。

目錄和文件名分大小寫。也就是域名斜杠後面的字元,分大小寫。比如你把這個問題的網址改成 http://www.zhihu.com/QUEstion/19572705 試試看。

也有的網站,有意將目錄和文件名強制小寫,比如新浪微博斜杠後面的用戶名。


要看解析的伺服器,因為域名是在根伺服器上解析的,而目錄是在網站所在伺服器上解析的。規則不一樣。


路徑部分看伺服器,Linux的必然大小寫敏感,Windows則不然。


域名是不區分大小寫的。但是域名下的路徑是區分的。

比如說http://sohu.lt和http://sohu.LT 是同一個網站的。

但是路徑就不是了 ,目錄是區分大小寫的。

特別在短網址中!!!!!!


域名不分大小寫 。不管幾級域名,都不分。Zhihu.com, zhIHu.com, http://www.zhiHu.com,都一樣。


普通的URL是不區分的,至於為什麼縮網址會,那是因為縮網址與真實網址有個對應的Map關係而不是直接去訪問,縮網址為了保證長度短,節省資源,所以必須區分大小寫,這就表示在匹配的過程中,a與A對應的不是同一個URL。自己的一點理解,望指正


域名不分大小寫,其實這個問題你根本不用問,自己試下不就知道了嗎


推薦閱讀:

有哪些知名網站是.org域名?
想註冊一個作個人博客用的域名,應該使用哪個域名註冊提供商?
.com.cn / .cn / .net 的同名域名哪個主推比較好?
有沒有很牛逼的.net做域名的網站?
後綴為 .me 和 .it 的域名適合做什麼樣網站?有大型網站使用這種域名嗎?

TAG:域名 | 網站域名 | 網址 | 短網址 |