早期传统 javaweb 开发

image-20210209165116006.255a957a
JAVA 代码与 HTML 等代码是在同一个 war 包中,而且这里的 HTML 指的是 JSP,JSP 是由后端服务器来渲染的,当用户量多的时候会造成服务器性能的影响,因为会进行大量的 JSP 渲染。

同时,页面之前的跳转是通过 URL 地址跳转。

前后端单页面交互 MVVM 开发模式

image-20210209165518441.cb754785
用户访问浏览器,Nginx 返回 H5 页面,这些静态资源一般都会通过 Nginx 来提供,页面中发出的请求是用户请求,通过 Restful 方式去后端服务器请求数据,后端服务器一般会返回 JSON 格式的数据。

这就做了一个前后端的分隔,对于手机来说,一般能显示 H5 ,也可以在手机上进行访问。

当然网站页面不一定兼容移动端,所以可能会在移动端开发 app 程序,这些 app 程序也是通过 restful 和 json 来与服务器交互的,那么这个时候的优点就体现出来了:不管前端有多少样式,后端代码只是一份,不用重复开发,唯一的区别是 针对不同端进行一些接口上的微调处理

总结

前后端分离的优点几乎上大于缺点,让各自领域的专业人员进行开发,还可以并行开发,提高开发速度。

前后端分离不仅是一种开发模式,也是一种架构。