精通MVC3摘译(5)-使用URL模式最佳实践

简介:

使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加速器可能就保护不了了。
















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/822884 ,如需转载请自行联系原作者



相关文章
|
3月前
|
设计模式 前端开发 JavaScript
浅谈MVC、MVP、MVVM框架模式
浅谈MVC、MVP、MVVM框架模式
30 0
|
3月前
|
XML 前端开发 测试技术
Android基础知识:解释Android的MVC和MVP模式。
Android基础知识:解释Android的MVC和MVP模式。
32 0
|
4月前
|
设计模式 前端开发 Java
Java设计模式【二十六】:MVC模式
Java设计模式【二十六】:MVC模式
34 0
|
6月前
|
SQL 前端开发 Java
JSP毕业设计选题系统统myeclipse开发sql数据库BS模式java编程mvc结构
JSP 毕业设计选题系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
28 0
|
7月前
|
PHP UED 开发者
代码审计 | URL解析模式
代码审计 | URL解析模式
|
1月前
|
前端开发 数据安全/隐私保护
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
33 0
|
1月前
|
XML 前端开发 Java
MVC 模式及对象持久化
MVC 模式及对象持久化
26 7
|
2月前
|
存储 前端开发 JavaScript
什么是MVVM?MVC、MVP与MVVM模式的区别?
什么是MVVM?MVC、MVP与MVVM模式的区别?
|
3月前
|
存储 开发框架 前端开发
MVVM 模式与 MVC 模式:构建高效应用的选择
MVVM 模式与 MVC 模式:构建高效应用的选择
MVVM 模式与 MVC 模式:构建高效应用的选择
|
3月前
|
前端开发 JavaScript 数据可视化

相关实验场景

更多