前后端分离开发部署模式

这周着手开始重新构建官网,OTA1.3V继续推进,目前分为了企业版,与国外版,老官网那套架构的代码经过几千人手的改动,于是索性干掉,采用新的架构模式(前后端分离开发部署模式),找到下面这篇文章我觉得说的挺好,在开始讨论这个话题之前我们先来认识一下传统的开发模式。

一、传统开发模式

相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如:

  1. PHP 开发有 Smarty模板引擎
  2. Java web工程有jsp页面
  3. Python 各个Web框架都有各自的模板引擎
  4. NodeJS 的express你懂得

都有一个共同的特点,服务器端后台语言生成解析后的HTML/XML格式返回给客户端,例如浏览器端访问直接返回解析好的HTML,浏览器直接就解释执行。

二、Ajax过渡

Ajax是把前后端分离部署的推进者,当时网页局部更新就是未来前后端分离的开端。那什么是前后端分离开发呢?

简单来说就是前端开发不需要部署后台语言那堆垃圾环境,后端开发也不需要前端写好的任何程序,后台只管暴露各种API接口提供前端进行数据的增删改查,不负责生成HTML页面

前端请求到数据后再动态声称dom节点。

三、前端构建

相对于后台来说,前端构建是重点,因为前后端分离开发后侧重点在于前端,后端就是一个数据提供,权限控制api。

后端项目通常都带自己的Server,除了PHP以外,所以后端做PHP开发的还需要一个WebServer,Apache就是经典配合,最近被抛弃换做Nginx了,所以后台环境本来就是伪生产环境。

前端项目还是要搭建一个Server,然后把项目丢里边才能跑起来调试开发,最笨的直接整一个Apache或者Nginx也可以,但这样开发还是很痛苦。可以利用Node工具集即可,Node工具集非常多,比如我非常喜欢用的BrowserSync。

四、解决请求问题

前后端分离后,我们只需要Server端告诉我们Api URL即可,那么这会产生一个问题:Ajax跨域。这里就不能使用一般的跨域解决方法去解决,比如jsonp,iframe信使等等,因为我们还有POST请求。

于是Http Proxy类工具就有用了,比如我就会在BrowserSync加入中间件判断每一个请求,如果是/api前缀就会代理到API Server端,API Server端收到数据后再返回给BrowserSync,BrowserSync再返回给浏览器端。这样就解决跨域请求的问题

生产环境有两种部署,一种是放到后台项目里,这就没啥说的,另外一种就是前后端分开部署,那就在前端WebServer处理端写点转发规则就好,如Nginx,Apache都支持。

五、静态资源路径问题

如果你的项目有上传资源功能,那自然就会产生用户资源,那前后端分离后,如何来处理这个问题呢?得先看模式。

资源与后台项目放一起,后台处理完后需要返回前台一个相对路径,如果资源时一台单独的服务器,那就需要返回资源的绝对URL即可。

六、会话

Web项目最头疼的就是无状态导致会话问题,传统的Web项目都使用Session/Cookie,但在前后端分离,集群部署模式下这Session明显缺陷太多。token方式已经是当前Web端解决会话的主流,并且有很多开源好用的token生成管理程序,基本上拿来就能用。

最后

前后端分离的弱点,无非有两点

1、前端负载增多,如请求到列表后,前端需要自己遍历数据集声称DOM节点 (目前绝大多数用户的电脑配置都不差,而且浏览器内核已经不在是满身缺陷的IE浏览器了)

2、不利于蜘蛛(其实现在的部分蜘蛛已经很厉害了,能够支持H5 C3效果)

强点,

1、Web端就像手机端的App一样,不需要Cookie/Session,与Server完全分离,易于维护、扩展。一个Server API可以随意服务多个Web App

2、AngularJS用过了以后,你应该会感觉未来的Web开发模式,AngularJS在几乎是前后端分离的领航者

3、前端静态资源与后台API分流,互不影响,甚至不会存在IO问题

4、开发上与后台几乎同步,互相不影响,特别是基于RESTFul API风格,更是减少了沟通的成本

5、方便各自debug,JAVA开发人员不需要跑到前端开发人员机器上看tomcat控制台的报错,前端开发人员也不需要跑到后端开发人员的机器上看浏览器报错调试

 

 

开发阶段目前需要考虑到的问题:

1前端负载的问题

2前端跨域调用问题

3安全性考虑(可能遭遇到相关的刷接口,xss攻击等)

4用token传递表示状态,token的安全性问题

 

 

图像处理系列——直方图之直方图规定化(Histogram Specification) 直方图规定化也叫直方图匹配(Histogram Matching),让原图像的像素分布与规定图像的像素分布保持一致。直方图规定化比直方图均衡化更加灵活,算是直方图均衡的变种。常用于图片风格一致性的自动处理,能有效的改善图像的整体或局部的特征,广泛运用在图像增强处理中。 阅读详情

相关推荐

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388

详细记录基于vue+nodejs+mongodb构建的商城学习(四)基于项目的node.js开发后端的学习与梳理总结...

前置:本系列文章是一个本人边学习边梳理的学习笔记,俗话说好脑袋不如烂笔头,再好的记忆力时间长了也会有细节忘记,本项目选择的前端框架是vue,后端开发使用是node.js,数据库使用的是mongodb,本系列文章重要内容主要有四点:1.云服务器的购买,怎么使用xshell工具连接云服务器;2.在本地及云服务器安装mongodb数据库,及数据库的使用;3.梳理我在学习vue这个前端框架之后的完整项目的...

weixin_34235371的博客 752

Haclon案例-找出图中面积最大的圆

自带的函数,求得圆的面积和圆心点坐标,然后,用本章所学习的选择算子和循环算子找出面积最大的圆。的图片,试着给它加上不同种类的噪声,然后找出其中面积最大的圆,并将圆的面积标注在其圆心位置。可知,除了六个圆形之外,还有一些微小的噪声点,采用了开运算和特征选择的方法去除噪声。1. 该图片为一灰度图,对其进行二值化,二值化后如图。4. 在面积最大圆的圆心坐标位置写上该圆的面积。

qq_20660115的博客 905

你不得不了解的前后端分离原理!

前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用...

abc_1114的博客 1073

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6319

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

基于webpack的前后端分离开发环境实战

背景 随着互联网应用工程规模的日益复杂化和精细化,我们在开发一个标准web应用的早已开始告别单干模式,为了提升开发效率,前后端分离的需求越来越被重视,前端负责展现/交互逻辑,后端负责业务/数据接口,基本上也成为了我们日常项目分工中的标配,但是前后端分离一直以来都是一个工程概念,每个团队在实现工程中都会基于自身的技术栈选择和开发环境进行具体...

weixin_33815613的博客 471

一篇文章带你搞定数学建模中的线性回归模型(05年长江水质问题示例讲解含代码)

文章目录一、问题分析二、原理讲解三、MATLAB 实现线性回归模型 一、问题分析 根据你的预测分析,如果未来10年内每年都要求长江干流的Ⅳ类和Ⅴ类水的比例控制在20%以内,且没有劣Ⅴ类水,那么每年需要处理多少污水 为了达到题目中所要求的水质,可建立废水排放量与各类水百分比之间的二元线性回归模型,对未来十年的废水排放量进行预测,并确定其与各类水所占百分比之间的函数关系式。通过此关系式,可以计算在这种情况下长江所能承受的最大污水排放量,将这个排放量与预测的排放量进行比较,多出来的部分就是需要每年处理掉的。 二、

南淮北安的博客 2166

SpringBoot前后端分离开发拆分和部署

以前的项目开发都是将前端代码和后端代码混合在一个java项目中,这样是不利于管理和项目进度的前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责,这样可以做到分工明确、各司其职,提高开发效率,前后端代码并行开发,可以加快项目开发进度。目前,前后端分离开发方式已经被越来越多的公司所采用,成为当前项目开发的主流开发方式。前后端分离开发后,从工程结构上也会发生变化,即前后端代码不再混合在同一个maven工程中,而是分为前端工程和后端工程。...

我要记录学习博客 3284

【QNX+Android虚拟化方案】129 - USB眼图参数配置

【QNX+Android虚拟化方案】129 - USB眼图参数配置

|~~~热爱生活、努力学习的小伙汁~~~| 821

uniapp [安卓苹果App端] - 实现判断并开启消息通知/提示权限,监测通知权限未开启时弹框提示用户并引导用户跳转至设置界面,uniApp检查通知权限+提示是否打开+点击跳转设置(详细示例代码)

uni-app判断有无通知权限,并进行设置,设置手机通知权限,开启通知权限,uni-app解决权限问题,uniapp 拉起授权(拒绝后重新开启权限)uniApp打包的手机app如果用户没开启通知权限、引导用户开启,uni-app动态打开应用通知权限,拒绝后跳转设置页面,uniapp获取通知栏权限,苹果ios系统打开通知权限,被拒绝怎么办,uniapp安卓判断通知权限,uniapp打包的APP引导用户打开手机通知权限,uniapp权限被拒绝,跳转手机设置页面 权限设置,IOS应用内跳转系统设置,uni-app

🏆 前端领域优质创作者 1万+

前后端分离前端部署方案是什么?

前后端分离如何部署?前端部署方案是什么?

Gzlcxxjs的博客 3894

(十五)CX20106A 中超声波测量的应用

(十五)CX20106A 中超声波测量的应用

m0_52555663的博客 4514

web前后端分离开发部署模式

web前后端分离开发部署模式 转自:http://www.qttc.net/201506464.html(点击阅读全文跳转自原页) 在开始讨论这个话题之前我们先来认识一下传统的开发模式。 一、传统开发模式 相信很多做过Web开发童鞋应该都会经历这样一种开发模式,利用后端语言提供的模版引擎编写HTML/XML页面,比如:

huangshulang1234的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

前后端分离是一种软件架构模式,将前端和后端的开发分离,使得前端和后端可以独立开发、独立部署和独立扩展

前后端分离是一种软件架构模式,它将应用程序的前端(用户界面)和后端(数据处理和业务逻辑)分离开发和部署。而在前后端分离的架构中,前端和后端是独立开发的,通过API进行通信。前后端分离是一种常见的软件开发架构,它将前端和后端的开发过程分离,使得前端和后端可以独立开发、测试和部署。前后端分离是一种软件架构模式,将前端和后端的开发分离,使得前端和后端可以独立开发、独立部署和独立扩展。性能优化:前后端分离可以通过优化前端静态资源的加载和缓存,减轻服务器的压力,提高网页的加载速度和用户体验。

[Blog][Domain] programb.blog.youkuaiyun.com 2834

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

前后端分离是一种软件架构模式,将前端和后端的开发分离开来,使得前端和后端可以独立开发、独立部署和独立扩展

前后端分离是一种软件架构模式,将前端和后端的开发分离开来,使得前端和后端可以独立开发、独立部署和独立扩展。SEO 不友好:由于前后端分离中前端使用的是动态渲染技术,搜索引擎难以爬取和索引页面内容,对于需要搜索引擎优化的网站来说,前后端分离可能不是一个理想的选择。开发复杂度增加:前后端分离需要同时维护前端和后端两个独立的代码库,开发人员需要具备不同的技术栈和编程语言的知识,增加了开发的复杂度和学习成本。前后端分离是一种软件架构模式,将前端和后端的开发分离,使得前端和后端可以独立开发、独立部署和独立扩展。

[Blog][Domain] programb.blog.youkuaiyun.com 1587

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

5:第二章:架构后端项目:1:【传统开发模式】和【前后端分离开发模式】,简述;

说明: (1)本篇博客内容,简单介绍【传统开发模式】和【前后端分离开发模式】;分析【前后端分离开发模式】的优点;

小枯林的博客 1510

你真的懂前后端分离吗|文末赠书

到底什么是前后端分离?01前后端分离是一种项目开发模式当业务变得越来越复杂或产品线越来越多时,原有的开发模式就无法满足业务需求了。产品越来越多,展现层的变化越来越快、越来越多,此时应该进行前后端分离的分层抽象,简化数据获取过程。比如,目前比较常用的是前端人员自行实现跳转逻辑和页面交互,后端人员只负责提供接口数据,二者之间通过调用RESTful API的方式进行数据交互,如图1所示。图1前后端分...

程序猿DD 361

B/S版电子病历系统源码 前后端分离模式开发和部署

该功能仅在住院病程中使用,目的是将某个患者的住院病程中所有的病历聚合在一起形成一张大的病历并能够打印,合并预览后的病历仅支持打印功能,不支持保存以及控件编辑功能。在该模式下,可以对单个患者的病历数据进行新建、编辑、预览、保存,以及打印的操作,是医院比较常用和重要的功能模块,暂不支持在同一窗口下打开多张病历的相关操作。模板编辑:医疗机构涉及的病历模板均可以按需设计制作,可通过运维运营分系统模板管理子模块病历模板中的‘编辑’功能实现该操作。

高端源码平台 1031

码农面试失败,关于前后端分离他是这么回答的!网友:挂的不冤!

今日话题“前后端分离”,说起前后端分离,想必大部分程序员还是知道这个概念的,特别是一些老程序员们,对这个概念有着非常透彻的理解,因为他们亲身经历web技术从前后端混在一块到前后端分离的整个过程,比如以前的jsp,php开发都是前后端混在一块的,比如php代码 echo " …";,直接在php里输出网页这种,整个web项目 都是php文件,竟然看不到html文件,现在php,html代码完全分开,...

sssdhua的博客 1274

个人对前后端的理解

个人对前后端的理解 什么是前端,什么是后端??? 很多学开发,或者没学开发的,可能都觉得这个是两种东西 我也曾经为了解释前后端和人争论,说的面红耳赤还是解释不清什么是前后端,前后端真的是两个东西吗? 网上也有很多很多的说法,有的说,前端是前端,后端是后端。 有的说,前后端不分家,还有的说… 在这里,我说一下我能解释的,和我最接收的一个点:(不要杠我,哈哈哈) 首先,我们要分清楚,前端和后端,说的是语言代码还是功能实现还是…等等?(这个很重要!!!) 是不是大家会觉得,认为web应用的开发期进行了前后端开发工

猿少有为 1363
上一篇: 高并发 网站前期的技术准备(转)
下一篇: 移动互联网App客户端服务端通信安全问题。
jayluns
博客等级 码龄17年 9粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值