为什么要前后端分离

439 阅读2分钟

首先是前后端不分离的坏处,例如几年前使用比较多的jsp:

1) 耦合在一起,容灾性差: 动态资源和静态资源都耦合在一起,没做到动静分离,web服务器(tomcat)压力大.因为服务器会受到各种http请求,有css的,js的,图片的等等.一旦服务器出现状况,前后端一起玩完,用户体验差.

2) 性能: jsp必须要在支持java的web服务器里运行(例如tomcat等),无法使用nginx(并发量高达五万),性能提不上来.

3) 性能: 第一次请求jsp,必须在web服务器中编译成servlet,第一次运行会较慢.

4) 性能: 每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高.

前后端分离的好处:

1) 前后端解耦: 前端服务器使用nginx,放一些css,js,图片等一系列静态资源,nginx负责页面引用,跳转,调用后端的接口.

2) 出错更好定位: 页面逻辑,跳转错误,浏览器兼容,页面样式等问题,全部由前端工程师负责.接口数据出错等全部由后端工程师来解决.

3) 精准拓展服务器: 在高并发情况下,我们可以按需同时拓展前后端服务器,听说淘宝用了2000台前端服务器做集群来抗住日均不知多少亿的pv,同理,后端也可以根据需求无限拓展,并且不会因为一方压力大而整体拓展服务器.

4) 减少后端服务器的请求压力: 除了接口以外的所有http请求全部转移到前端服务器nginx上.

5) 容灾: 即使后端服务器暂时超时或者宕机了,前端页面也能正常访问,只不过刷不出来数据而已.

6) 程序复用: 需要开发app端,或者微信相关的小程序时,大量接口可以复用,提升效率.

7) 职业发展: 术业专攻,提升核心竞争力,更有利于个人拿高薪

8) 公司效率: 前端和后端都做自己擅长的事情,整体效率更高