先后端合做分为两种方式:1.服务器渲染 2.先后端分离html
1.服务器渲染(SSR)前端
客户端请求,服务端的servlet或controller接收请求,后端控制路由与渲染页面,调用service,dao代码完成业务逻辑,返回jsp,jsp展示页面。小程序
tips: 后端
servlet是在服务器上运行的小程序。这个词是在 Java applet的环境中创造的,Java applet 是一种看成单独文件跟网页一块儿发送的小程序,它一般用于在客户端运行,结果获得为用户进行运算或者根据用户互做用定位图形等服务。(来自百度百科)浏览器
controller 就是MVC里的控制器。服务器
dao 是后端的数据访问层。app
2.先后端分离前后端分离
浏览器发送请求,直接到达html页面,页面负责调用服务器端口产生数据,填充html,在页面上进行解析操做DOM异步
二者的区别:jsp
传输量:
服务器渲染传输数据较多,并且不少重复数据。
先后端分离传输数据量少
传输数据:
服务器渲染返回的是HTML
先后端分离返回的是JSON格式的数据
控制:
服务器渲染由后端来决定大多数
先后端分离 跳转的页面,由前端来决定
SEO:
服务器渲染支持SEO
先后端分离不支持SEO,由于首屏渲染出的html里是空数据
用户体验:
服务器渲染 返回的是包含数据和HTML的页面,首屏加载快
先后端分离 有渲染数据的过程,首屏渲染加载时间较长,单页面应用(SPA),用户体验更好
对于开发者:
服务器渲染 后台压力较大,出现bug会存在踢皮球的现象,服务器端压力较大。
先后端分离 前端和后台各司其职,出现bug快速定位谁的缘由,较少服务器端压力,页面出现大量数据前端能够异步加载。提升开发效率。前端代码,能够复用,组件化。提高开发效率。