什么是前后端分离: 前后短分离的项目就是前端代码和后端代码是完全独立的不需要在一个项目里面部署(模板不是前后端分离)。
前后端分离好处:
并行开发,提高效率
降低耦合度
提高处理复杂业务能力
缺点:
增大团队沟通成本
不利于搜索引擎抓取
项目维护成本增高
增加繁杂的配置
前后端:
前后端是根据和用户交互来区分的,直接和用户交互的,管显示效果的就叫前端,前端没有服务器(app严格来说也算前端),存储数据,执行一系列操作,提供其他服务的是后端;
前端可以部署很多个,后端也可用部署很多个,是多对多模型。而且前后端分离还有一个好处就是方便横向扩展,可以在不同的地方部署不同的前端项目,当地的人就近访问对应的前端项目。
当客户端发起请求,会先获取前端并在客户端加载前端内容,然后再通过前端预留的接口(IP地址及端口号)向后端请求数据。(整个过程中,前端直接不会访问后端,而是运行在客户端上,提供接口供客户端访问后端请求数据)APP的原理也是如此。
为什么要部署多个前端项目?
既然前端自己是不运行的,是在客户端运行的,那么把前端部署那么多到各个地方有什么作用呢? 如果前后端是不分离的,都统一部署到一起,那不管哪里的人发出请求。首先要加载前端页面,下载前端文件(html文件css文件js文件),各个地方的客户端都要先从服务端下载这些资源,然后才能进行后面操作。如此不管哪的请求都从服务器下载,第一,这个服务器的带宽消耗很严重。第二,远程的下载速度也很慢,加载前端流量耗费是比较大的。为了解决这个问题,提高用户访问响应速度和命中率,采用将前端资源就近加载到客户端的方法,通过CDN将前端部署到各个地方。(不管请求的前端是哪一个,最终处理请求的是N个后端中一个固定后端)。