有什么区别......
http://mysite.com/12345
和
http://mysite.com/an6
我很想知道因为数字处理所有内容会更容易,我仍然认为没有理由从数字转换为字母数字。
答案 0 :(得分:2)
基本上在你给出的两个例子中没有太大区别。除了您可以包含more非信息字符的事实。 URL中没有(人类可读的)信息......他们可能会持有:
当您开始在这些网址中嵌入一些有用的信息时,差异就会发挥作用...例如,本网站上的网址 - 特别是您的网站及其地址 -
https://stackoverflow.com/questions/9749505/numeric-vs-alphanumeric-url
那么我们可以从这里看到什么(除了它的Stack Overflow链接,显然是解决你的编程问题的正确来源;)
stackoverflow.com/questions/
stackoverflow.com/questions/9749505
questions/9749505/numeric-vs-alphanumeric-url
要获取这些“友好网址”,可以使用.htaccess
文件重定向网址之间的请求。
以下是.htaccess
文件可以完成的简单示例:
RewriteCond $1 ^questions/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^questions/(.*)$ getQuestion.php?id=$1 [L]
这里发生的是这个 - 用户和浏览器看到的实际网址是:
example.com/questions/12345
但是处理请求的实际脚本是getQuestion.php
,它会传递一个从原始URL(特别是数字)中提取的变量。然后该脚本将检索内容并显示该内容,但该网址与/questions/12345
保持相同的网址。
实际上,getQuestion.php
文件将处理所有问题请求。
所以你看,字母数字和数字网址之间没有真正的区别 - 不同之处在于你开始在其中嵌入有用的信息,只是简单地为用户阅读他们的名字(以及作为开发人员的信息)。
答案 1 :(得分:2)
在网址中使用字母a到z和数字0到9的原因是你可以用更少的字符组合更多的组合。
例如,如果您只有3个字符可用于您的产品ID,则使用0到9将为您提供1000个组合(000到999),即10 ^ 3(10个字符,您可以使用 - 0,1, 2 ... 9 - 以3的力量提升,最后一根弦的长度。)
但是如果使用0到9和a到z,则可以存储36 ^ 3个唯一ID。 (26个字母+10个数字),以3的幂为46656。如果你还要区分小写和大写,总数将是(26 + 26 + 10)^ 3 = 238328。只需3个字符
人们使用字母数字字符而不是数字ID的原因是他们没有搜索引擎优化的好处,所以最好是他们的长度最短,以便可以包含更多相关的单词。
其他好处是针对像twitter这样的社交网站,你的messaje有一个字符限制,所以使用严格的数字ID会效率低下。
可能的缺点是,在使用数字ID而不是文本ID时,SQL查询往往更快,但有办法避免这种情况。