实现前后端分离后,有了下面几点改变:
1.服务器一分为二,前后端分别部署,静态资源放在前端服务器,业务代码放在后的服务器
2.前端服务器需要接收Http请求(一般使用node.js)
3.前端服务器需要进行视图解析(可以使用vue.js、angular.js)
4.前端服务器需要处理路由(也就是页面之间的跳转逻辑)
5.后端服务器只需要返回数据
核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。
前后分离的优势
1、可以实现真正的前后端解耦,前端服务器使用nginx。前端/WEB服务器放的是css,js,图片等等一系列静态资源(甚至你还可以css,js,图片等资源放到特定的文件服务器,例如阿里云的oss,并使用cdn加速),前端服务器负责控制页面引用&跳转&路由,前端页面异步调用后端的接口,后端/应用服务器使用tomcat(把tomcat想象成一个数据提供者),加快整体响应速度。(这里需要使用一些前端工程化的框架比如nodejs,react,router,react,redux,webpack)
2、发现bug,可以快速定位是谁的问题
3、在大并发情况下,可以同时水平扩展前后端服务器
4、减少后端服务器的并发/负载压力。除了接口以外的其他所有http请求全部转移到前端nginx上,接口的请求调用tomcat,参考nginx反向代理tomcat。且除了第一次页面请求外,浏览器会大量调用本地缓存。
5、nginx支持页面热部署,不用重启服务器,前端升级更无缝。
6、增加代码的维护性&易读性
7、提升开发效率