前后端分离是什么?为什么要前后端分离?
就是把数据和页面分离开,后端不提供页面,只是纯粹的通过 Web API 来提供数据和业务交互能力,Web 前端就是纯粹的客户端角色,与 WinForm、移动终端应用属于同样的角色,可以把它们合在一起,统称为前端,分离开了后,后端不再考虑页面如何美化,前段也不需要了解后端采用的是什么样的技术实现方案,使得前后端的开发人员能够更加专注于自身业务的开发。
前后端分离图解
以前的一体式 Web 架构示意
现在的前后端分离构架示意图
前后端分离主要技术切入点(重要)
前后端分离后,会出现以前web一体式构架中没有出现过得问题,比如认证,会话机制,签名验证等,
既然是做对外的api接口,当然安全问题是我们需要认真考虑的问题了,那么webapi会存在那些安全隐患呢?
- 请求来源(身份)是否合法?
- 请求参数被篡改?
- 请求的唯一性(不可复制),防止请求被恶意攻击
处理这些安全隐患可以采用token+signature认证的方式;原理是:(1)做一个认证服务,提供一个认证的webapi,用户先访问它获取对应的token;(2)用户拿着相应的token以及请求的参数和服务器端提供的签名算法计算出签名后再去访问指定的api;(3)服务器端每次接收到请求就获取对应用户的token和请求参数,服务器端再次计算签名和客户端签名做对比,如果验证通过则正常访问相应的api,验证失败则返回具体的失败信息