前后端不分离:
所谓前后端不分离就是:前端页面看到的效果都是由后端控制和渲染的,也就是说前端和后端的耦合度很高;图解:
前后端分离:
前后端分离就是后端不再渲染页面,由前端自己根据需求进行渲染,前后端耦合度较低。
图解:
前后端不分离
在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。
这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不适用于前端App应用,为了对接App后端还需再开发一套接口。
请求的数据交互如下图:
前后端分离
在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。
在前后端分离的应用模式中 ,前端与后端的耦合度相对较低。在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。
对应的数据交互如下图 :
练手项目源码、新技术介绍、原理性知识、应用框架知识点讲解、常见笔试面试题分析,搜索【Java知音】
前后端分离 、 前后端不分离
- 市场流行:前后端分离
- 前后端分离好处:
- 开发方法优化了
- 对亿万级数据请求可以做并发处理
- 很久以前( 2010 - 2013年 ) 前后端不分离项目
- 前端 --》 后端 --》 jsp --> 前后端项目集成( 成功 )
- 前端 --》 后端 --》 jsp --> 前后端项目集成( 失败 ) -->前端二次反工 -->后端反工 -->集成
互联网的项目开发流程
以前老的方式是:
- 产品经理/领导/客户提出需求
- UI做出设计图
- 前端工程师做html页面
- 后端工程师将html页面套成jsp页面(前后端强依赖,后端必须要等前端的html做好才能套jsp。如果html发生变更,就更痛了,开发效率低)
- 集成出现问题
- 前端返工
- 后端返工
- 二次集成
- 集成成功
- 交付
新的方式是:
- 产品经理/领导/客户提出需求
- UI做出设计图
- 前后端约定接口&数据&参数 { id,name,age,sex }
- 前后端并行开发(无强依赖,可前后端并行开发,如果需求变更,只要接口&参数不变,就不用两边都修改代码,开发效率高)
- 前后端集成
- 前端页面调整
- 集成成功
- 交付
以前老的请求方式
- 客户端请求
- 服务端的servlet或controller接收请求(后端控制路由与渲染页面,整个项目开发的权重大部分在后端)
- 调用service,dao代码完成业务逻辑
- 返回jsp
- jsp展现一些动态的代码
新的请求方式是:
- 浏览器发送请求
- 直接到达html页面(前端控制路由与渲染页面,整个项目开发的权重前移)
- html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据,json数据格式因为简洁高效而取代xml)
- 填充html,展现动态效果,在页面上进行解析并操作DOM。
大多数情况都是单独请求后台数据,使用json传输数据,而不是一个大而全的http请求把整个页面包括动+静全部返回过来
在互联网架构中:
- web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。
- 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。
- 一般只有Web服务器才能被外网访问,应用服务器只能内网访问。
前后端不分离:
所谓前后端不分离就是:前端页面看到的效果都是由后端控制和渲染的,也就是说前端和后端的耦合度很高;图解:
前后端分离:
前后端分离就是后端不再渲染页面,由前端自己根据需求进行渲染,前后端耦合度较低。
图解:
转载于:https://www.cnblogs.com/kinoko-1009/p/10261903.html
开发模式介绍
- 前后端不分离
- 定义:以后端直接渲染模板完成响应为主的一种开发模式
- 特点
- http请求次数少
- 只需要一个后台服务器
- 前后端开发耦合,责任不明确
- 单纯开发网站,效率非常高
- 响应的往往是html的页面
- 前后端分离
定义:后端只要开发接口即可,前端可以通过发起http请求,拿到后端的数据,
渲染和怎样调用接口的事情,交给前端。
特点
- 有静态文件服务器、后台的应用服务器
- 后台服务器只提供的接口的服务
- 前后端责任分工明确
- 一个后台即可满足网站、app、小程序等多种应用的需要
- 响应的往往是json的数据
开发模式的选择
- 如果有多个客户端,web网站,公众号,小程序,选择前后端分离的开发模式,统计提供接口的服务
- 如果只需要快速构建网站,可以选用前后端不分离的开发模式,不用写大量的js代码,直接通过模板引擎,把页面渲染出来