精通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是如下的那样:
https://cache.yisu.com/upload/information/20200312/60/249157.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加速器可能就保护不了了。