使URL模式最佳实践

现在,你可能想知道怎么设计自己的URL结构。你可以按照visual studio自动生成的默认模式,但是也可以选取对你最有帮助的模式。

这些年,设计应用程序URL变的颇受重视,也出现了一些重要的设计原则。如果你遵循这些设计模式,对的你应用程序的实用性,简洁性,和搜索引擎排名都有显著的提升。

用户很关注URL,如果你不这么认为,想象一些你给某人发送一个Amazon的URL,如下:

http://www.amazon.com/Pro-ASP-NET-MVC-3-

Framework/dp/1430234040/ref=sr 1 13?s=books&ie=UTF8&qid=1294771153&sr=1-13

通过email发个某人这样的URL已经够糟糕了,如果通过电话读出来那更糟糕。如果URL是如下的那样:

http://www.amazon.com/books/pro-aspnet-mvc3-framework

这个URL我们可以通过电话来读给对方,非常自然。

要澄清的是,我们非常尊敬Amazon,我们也知道每个Amazon团队的成员都是聪明善良的人。他们不会因为我们对他们URL格式的批评而不卖书给我们了。我们非常喜欢Amazon,只是希望他们能修改一下URL。

下面几个如何生成友好URL的建议:

按照内容设计URL,而不是按照应用程序设计的细节,使用诸如/Articles/AnnualReport,而不是/Website v2/CachedContentServer/FromCache/AnnualReport。

通过ID表示内容标题,如果必须要使用ID(区分特定的项目,或者避免额外的数据库查询开销),使用/Articles/2392/AnnualReport。拼写虽然很长,但是对人和搜索引擎来说更加友好。

不要使用文件扩展名来呈现网页,比如.aspx,.mvc,但是对特殊类型的文件比如.jpg.pdf.zip则要使用后缀。web浏览器不关心文件扩展名,只要你的MIME type设置正确,但是用户仍然希望.pdf结尾的文件是个PDF文件。

创建有层次的URL,必须/Products/Menswear/Shirts/Red,这样用户可以猜测父级的URL。

保持忽略大小写敏感,ASP.NET路由系统默认的是对大小写不敏感的

避免使用标签,代码,字符序列。如果太分割单词,使用-号,比如/my-great-article。下划线不是很友好,使用URL编码的空格也很奇怪,比如/my+great+article,也可能让人厌恶,比如(/my%20great%20article)

不要改变URL,无效的链接可能会失去商机。当你改变URL,保证老的URL结构仍然能够访问到。

一致化的格式。对你整个应用程序,采用一种URL格式。URL应该简短,易于拼写,永久有效,并且可以能显出整个站点的结构。

正确选择GET还是POST

根据经验,GET请求应该用来获取只读信息,POST请求用来操作数据。在标准术语中,GET请求针对的是安全交互,除了请求信息之外没有任何副作用。POST请求是对非非安全交互的,比如修改信息或者建立信息。这个惯例是由W3C设立,http://www.w3.org/Provider/Style/URI。GET请求的信息可以从地址中获得,所有的信息都包含在URL中,所有不太可能讲这种link地址加入收藏夹。

不要使用GET请求来操作数据状态。很多web程序员在2005年才明白这一点的重要性,那时google网页加速对公众开放。这个应用程序预先从页面中获取内容,这个对于HTTP是合法的,因为GET请求是安全的。

不幸的是,很多web程序员忽略了HTTP的惯例,将简单的链接导向’delete item‘’add to shopping car‘等操作。这样就混乱了。

有的公司以为他们的网站受到了反复的恶意***,因为所有的内容都被删除了。但是后来才发现是搜索爬虫点击了管理员页面,抓取了所有的delete链接。认证系统可能会保护你,但是对于web加速器可能就保护不了了。