这不是关于stackoverflow的问题,它是关于stackoverflow实现的设计决策的问题,我以它为例。
有关stackoverflow的问题由以下URL标识(从建议中获取)
https://stackoverflow.com/questions/363292/why-is-visual-c-lacking-refactor
同样,我的用户网址是:
https://stackoverflow.com/users/78374/stefano-borini
事实上,实际只使用了数字索引
https://stackoverflow.com/users/78374/
剩下的部分可以是任何东西。这种设计决策背后的原因是什么,特别是考虑到“cool URIs do not change”
编辑:在我看到this question之后投票结束,这大大提出了相同的问题。我的问题是重复的
答案 0 :(得分:3)
部分原因是您可以更改您的用户名或帖子标题(更正拼写等),但保留网址有效。
在网址中使用标题会让搜索引擎优化变得有意义 - 它使网站更有可能被正确编入索引。
答案 1 :(得分:1)
它允许URL包含人类和搜索引擎的一些有趣信息,但即使标题发生变化,它仍然有效。
你可以将原始的“slug”存储在数据库中并验证它和id,但它唯一阻止的是这样的游戏:
Lack of invariance in stackoverflow URL. Why?
:)
答案 2 :(得分:0)
搜索引擎,例如网址中的文字。
当搜索字词实际出现在网址而不仅仅是网页时,页面的排名会更高。它基本上是机器人糖。
答案 3 :(得分:0)
这允许您在URL中查看一些对您来说意味着什么的文本。如果我查看一系列问题的链接历史,那么这个数字就没有意义了。但是,在那里有文字可以让我有一些背景。
答案 4 :(得分:0)
这是SEO(搜索引擎优化)的实际应用。它有助于搜索结果中的页面排名(在google,yahoo,bing,...上),因为搜索引擎会为URL包含用户正在搜索的关键字的页面提供更高的排名。
答案 5 :(得分:0)
理论上,这是出于搜索引擎优化的原因。该软件忽略标识符后面的部分(“slug”),但想法是搜索引擎爬虫考虑链接文本的描述部分,从而在搜索结果中将结果页面加权。这实际上是否以任何有意义的方式发生,我不确定。
更实际的用途是,通过检查slug,您可以更好地了解链接指向的位置,如果您有多个问题URL,这样很方便。
答案 6 :(得分:0)
除了搜索引擎的好处(URL中的文本功能强大)之外,事实是,出于所有实际目的,此URL不会“更改”。可以将更改定义为导致将来某个时间点的链接无法正常工作的内容 - 这种情况永远不会出现在此URL中。最后的变化文本不会影响任何用户访问底层资源的能力。
答案 7 :(得分:0)
“很酷的URI不会改变”
酷URI可以改变,只要旧的URI仍然可以。
也许有人会认为“stackoverflow URL中缺乏不变性”。为什么?“这是一个糟糕的问题标题,并将其更改为”为什么SO URL中存在冗余信息?“。如果slug可以更新以反映新标题会很好,特别是如果我们想改变它的原因是一个令人尴尬的错字。但旧URI必须继续有效。
非规范URI的一个缺点是搜索引擎可能会混淆并认为它们是两个不同的页面。或者他们会发现他们的两页相同,但是决定要链接到的“最佳”页面是您不想要的标题。如果很多人链接到另一个标题完全像:
,这尤其糟糕http://stackoverflow.com/questions/1534161/stackoverflow-smells-of-poo
提示更加尴尬。解决这个问题的最好办法(虽然很少有网站打扰,而SO却没有)是检查提交时的slug并使用最新的slug执行301永久重定向到新的URI。搜索引擎会选择新的URI而不是任何带有poo的恶意URI。