精通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月前
|
设计模式 存储 前端开发
MVVM、MVC、MVP三种常见软件架构设计模式的区别
MVC、MVP 和 MVVM 是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
82 12
|
4月前
|
设计模式 前端开发 JavaScript
浅谈MVC、MVP、MVVM框架模式
浅谈MVC、MVP、MVVM框架模式
51 0
|
4月前
|
XML 前端开发 测试技术
Android基础知识:解释Android的MVC和MVP模式。
Android基础知识:解释Android的MVC和MVP模式。
54 0
|
4月前
|
设计模式 前端开发 Java
Java设计模式【二十六】:MVC模式
Java设计模式【二十六】:MVC模式
54 0
|
4月前
|
前端开发 数据安全/隐私保护
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
95 0
|
3月前
|
设计模式 存储 前端开发
MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序的输入逻辑、业务逻辑和用户界面逻辑分离
【6月更文挑战第17天】**MVC模式**是软件设计模式,用于分离输入逻辑、业务逻辑和用户界面。模型处理数据和业务,视图展示数据,控制器协调两者响应用户请求。优点包括:关注点分离、提高开发效率、简化测试、支持多视图及便于大型项目管理。
36 3
|
4月前
|
设计模式 存储 前端开发
MVC(模型-视图-控制器)是一种在Web应用程序开发中广泛使用的软件设计模式
【5月更文挑战第12天】MVC模式是Web应用开发中的常见设计模式,将逻辑、数据和界面分离,提升代码可维护性和重用性。模型处理数据逻辑,视图展示数据,控制器协调用户输入与模型视图交互。优点包括代码分离、易维护、可扩展和组件重用,促进高效灵活的开发。
47 2
|
3月前
|
存储 前端开发 数据库
MVC模式和三层架构
MVC模式和三层架构
49 2
|
3月前
|
设计模式 前端开发 Java
mvc模式详解
mvc模式详解
|
4月前
|
前端开发 JavaScript 中间件
基于最新koa的Node.js后端API架构与MVC模式
基于最新koa的Node.js后端API架构与MVC模式
72 1