stackoverflow URL中缺少不变性。为什么?

时间:2009-10-07 21:02:04

标签: url

  

可能重复:
  Why do some websites add “Slugs” to the end of URLs?

这不是关于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之后投票结束,这大大提出了相同的问题。我的问题是重复的

8 个答案:

答案 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。