最近我在这个网站以及其他地方阅读了大量关于“友好URL”的讨论,但我不确定什么样的URL才算是“友好的”,以及为什么我们真正关心(到一定程度)。如下示例:
以下是目前绝大多数Web开发人员认为“友好”的URL示例:
www.myblog.com/posts/123/this-is-the-name-of-my-blog-post
相比之下,以下URL被认为是“不友好”的(即差劲的、尼安德特的、无知的、愚蠢的):
www.myblog.com/posts.aspx?id=123
我的问题:
- “友好”的URL难道不包含有关所讨论博客文章的重复标识信息吗?换句话说,一旦你有了文章的ID(123),你为什么还需要文章标题呢?这不违反了“不要重复自己”的原则吗?
- URL的形式对用户有什么影响?用户会手动键入完整的URL吗(当然除了顶级域名)?用户是否会查看页面的URL以确定页面内容?为什么我们需要在URL中包含博客文章的标题?这不是页面的
标签和内容的功能吗?</li> <li>我经常听到以SEO为理由,认为“友好”的URL形式是首选。搜索引擎蜘蛛为什么会关心URL?它们不只是自动化的软件程序,爬行页面(以及其中包含的指向其他页面的链接)吗?如果搜索引擎像其他软件组件(例如数据库访问组件)一样编写,那么URL对它们来说只是一个无意义的标识符(类似于关系数据库中的rowguid)。如果我设计了一个类似“友好”的URL作为表的主键的数据库模式,我会(完全正确地)被批评的。</li> </ul>我之前说“在某种程度上”是因为显然,URL可能会失控。下面是一个来自Amazon.com的实际URL,我认为任何正常人都不会认为它是“友好”的: <blockquote> <p><a href="http://www.amazon.com/Bissell-Kitchen-Housewares/b/ref=amb_link_5001972_17?ie=UTF8&node=694500&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=gp-center-5&pf_rd_r=1ZXNJFE0CCFFDH4B9HGH&pf_rd_t=101&pf_rd_p=405478901&pf_rd_i=510080" rel="noreferrer">http://www.amazon.com/Bissell-Kitchen-Housewares/b/ref=amb_link_5001972_17?ie=UTF8&node=694500&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=gp-center-5&pf_rd_r=1ZXNJFE0CCFFDH4B9HGH&pf_rd_t=101&pf_rd_p=405478901&pf_rd_i=510080</a></p> </blockquote>