前端后端分离模式

---
title: 前端后端分离模式
date: 2018-06-09 16:29:00
updated: 2018-06-10 12:00:00
categories:
- web
tags:
- front end
---

前端后端分离模式

题外话:一句话,只要超过一个人的团队,就要前后端分离;只要做SEO的产品,就要做服务端渲染。

适用场景

序号 描述
页面布局复杂+使用主题样式
页面渲染效果要求较高
页面包含复杂业务逻辑
页面渲染的数据量较大

模式收集

模式①

<div align=center>
<img src="/images/前端工程/前后分离模式01.png" title="前端后端分离模式01"/>
</div>

模式②

<div align=center>
<img src="/images/前端工程/前后分离模式02.png" title="前端后端分离模式02"/>
</div>

模式③

<div align=center>
<img src="/images/前端工程/前后分离模式03.png" title="前端后端分离模式03"/>
</div>

模式对比

项目 传统模式 nginx+server nodejs+server nginx+nodejs+server
SEO ×
浏览器渲染 ×
前后端耦合度 ×
请求效率水平 × ×

职责分工

方案1:

项目 view control model
前端 ×
后端 × ×

前端负责view+control;后端负责model

方案2:

项目 view control model
前端 × ×
后端 ×

前端负责view;后端负责model+control

SEO解决

nodejs出现之前:
方案1:做一动一静两套页面
服务器判断请求来自蜘蛛就呈现静态页,否则呈现动态页.
方案2:
服务器架设虚拟浏览器软件,请求过来了先让虚拟浏览器跑一遍,再将得到的静态页面返回给客户端.

nodejs出现之后:
方案3:前后端同构方案
一套代码在浏览器端和node端都可以运行,从而可以先在node端请求数据渲染模板,然后将渲染结果返回给浏览器最终呈现,是目前最完美的前后端
分离+SEO解决方案

数据交互

交互原理

项目 描述
接口地址
请求参数
返回参数

文档谁写

接口文档主要由后台来设计,修改,前端开发者起到了辅助的作用。

数据格式

json>xml>...

辨别区分

1.两个项目
2.两个服务器(独立部署)
3.两个不同的工程、两个不同的代码库
4.不同的开发人员

简而言之:

类目 标志
开发时 前后端代码分离、开发职责分离、能够独立的开发测试
运维时 前后端应用部署分离

若运维时不分离,则为半分离。

未来展望

序号 描述
大型分布式架构
弹性计算架构
微服务架构
多端化服务

多端————浏览器端、车载终端、安卓、手机、电视...

参考文献

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容