2019独角兽企业重金招聘Python工程师标准>>>
最近在开发新项目,总是希望尽善尽美,让以后的维护轻松一点.基于前后端分离的模式进行开发,所有的浏览器url都由前端处理后转发发给后端,这里前端就要设计一些友好的url.
一开始没有注意这方面,开发完将近两个模块后,突然发现url的设计处于随心所欲的状态,没有一个规范.这才发现这是一个不容忽视,但却经常性被忽视的问题,
既然决定好好梳理一下url的设计,首先我来思考一下url的作用.一般来说,用户通过一个url的能访问到一些资源,这里提到的资源通常情况下是一些数据,可能是文字表格,图片,音乐或者视频等.结合一些资料自己总结了一些url的规划.
短小而有含义
不知道谁之前提出过url的设计要注意对于SEO的友好,我只能说根据我的体验这纯粹是扯淡...你在设计url的时候先想清楚,那么长一串的"专业英文"到底是为谁设计的,url的目的是为了服务于人,而不是为搜索引擎设计的.所以使用完整而有含义的单词,如果词义相近选择尽量短小的.从这个角度想之前的一些设计就不是很合理,比如www.demo.com/resource_childlist/2这样的url,应该设计成www.demo.com/resource/2/chilclist才对.
为了对用户尽可能友好,那么就应该让url具有良好的可读性并且尽可能的短,我曾看到说不要在url中出现类似数据库ID号这样对用户没有意义的内容,按照建议/products/23这样的URI地址对用户是很不友好的,应当使用/products/red-apple一类的地址.对于这个我持相反的意见,按照RESTful接口的设计思路,以及程序的开发的便利性,使用唯一标识的好处都要比坏处明显的多.
可预测性
另一个良好url的设计表现,就是url的可预测性.因为你的url设计准则非常一致,规律性很强.那么用户则可以据此推测其他内容的url.比如www.demo.com/resource/2/childlist代表资源2的子列表,那么www.demo.com/resource/22/childlist则应该代表资源22的子列表.
url字母小写
如果平时仔细观察你会发现很少有网站的url中包含了大写字母,尤其是web网站的页面url.这么做是为了方便使用者输入,不会因为大小写混合出现错误,另外有一些服务器对于大小写区分敏感.这是为了避免一些特殊词对于url的破坏,同时也会尽量避免使用诸如!,@,#,$,%,^,&,*一类的字符.
额外的资源后缀是没有意义的
因为是前后端分离开发,所以页面全都是一些静态文件,然后又JS请求数据再来动态渲染.所以用户url请求的其实都是一些url,但是绝对不会出现www.demo.com/resource.html这样的路径,首先对用户不友好,其次也没有必要暴露对于用户没有任何意义的.html后缀.
结论就是url的设计要紧密结合系统的功能模块,从视觉的角度去规划,在易读的同时注意于系统组织结构的结合.