前后端分离

前后端分离 与 不分离

与世无争的帅哥 提交于 2019-12-18 02:23:10
前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。 这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。 请求的数据交互如下图: 前后端分离 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。 在前后端分离的应用模式中 ,前端与后端的耦合度相对较低。 在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。 对应的数据交互如下图 : 前后端分离的优点 彻底解放前端 前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码 提高工作效率,分工更加明确 前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可

我们为什么要尝试前后端分离

ぐ巨炮叔叔 提交于 2019-12-18 00:19:15
这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解。 尝试与改变 如果你没有尝试过前后端分离的工作流程,那么可以先试想一下这样的流程改变: 把流程从 PM:“我要这个功能” 后端:“这个先找前端做个模板” 前端:“模板做完了” 后端:“我来对接一下,这里样式不对” 前端:“我改完了” 后端:“功能交付” PM:“春节要加这个活动” 后端:“这个先找前端改个模板” 前端:“模板做完了” 后端:“我来对接一下,这里样式不对” 前端:“我改完了” 后端:“功能交付” 变成 PM:“我要这个功能” 前端:“我要接口” 后端:“接口完成了” 前端:“我来对接一下,功能交付” PM:“春节要加这个活动” 前端:“需要增加接口” 后端:“接口完成了” 前端:“我来对接一下,功能交付” 由此可见,前后端分离的主要概念就是:后台只需提供API接口,前端调用AJAX实现数据呈现。 现状与分歧 作为一名前端开发人员,我们应该尝试一些新颖的技术,完善每一个细节性的问题,不断突破自我。虽然前后端分离已经算不上什么新颖的技术或思路,但是目前很多后台开发人员甚至前端开发人员都没有接触过。 据我个人的了解,如果在一个部门里,部门人员全是后台开发人员,前端的一些页面也是由后台人员完成的

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

佐手、 提交于 2019-12-16 21:20:02
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 一、开发人员分离 以前的JavaWeb项目大多数都是Java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,小编建议是分开。 1.对于后端Java工程师: 把精力放在Java基础,设计模式

Nginx部署前后端分离服务

安稳与你 提交于 2019-12-14 23:22:16
飘过。。。 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件。使用 Nginx的目的就是让静态文件运行起服务,由于后端的接口也是分离的,直接请求可能会产生跨域问题,此时就需要Nginx转发代理后端接口 nginx配置: 起到的作用有 三,启动Nginx服务 四,问题 在执行 nginx -t 时出现如下了报错: 谷歌得到解答,将 user nginx; 替换成 user nobody nogroup; 然后再次执行 nginx -t 就没有报错了。 END 飘过。。。 二,配置nginx 一般nginx配置文件在etc目录下 cd /etc/nginx sudo vi nginx.conf 另,如何找nginx.conf配置文件: sudo find /etc -name nginx.conf //在 /etc 目录下查找 nginx.conf 配置文件 sudo locate nginx.conf //locate 是在后台数据库中按文件名搜索 , 搜索速度比 find 更快 , 但对于刚建立的文件 , 使用该命令进行查找将会搜索不到所创建的文件 , 如果想使刚创建的文件被 locate 命令搜索到 , 可以使用 updatedb 命令 , 更新

自己开发一个网站

自古美人都是妖i 提交于 2019-12-12 05:13:50
java开发者 自建一个网站记录 此网站链接pasyy.cn 前端\后端\数据库 源码免费下载----码云 每周一更,记录一人搭建网站的开发过程,并将注意的地方标注出来,并会适当提出自己的一些思路的见解. 希望观后有收获,祝大家观后能更轻松的完成自己的需求! 开发环境( 前后端分离项目 ):   前端  : bootstrap-3.37 + jq-3.2.1 + angular-1.58   后端  : jdk8 + SSM框架   服务器 : tomcat 9 + nginx1.16   数据库 : mysql 8.0.18   云服务器: centos 7.6 开发流程: 1.应该准备一个博客,记录自己遇到的问题(我就没有这步,或者说我把问题记录在 了有道云笔记上,所以现在搬运过来) 2.配置 java开发环境 和 开发的IDE 3.推荐下载前端开发软件 Hbuilder或Hbuilder-X(体积更小,开发迅速) 4.下载mysql8.0 并准备数据库图形化软件sqlyog 5.下载并配置nginx 6.单机测试 7.购买服务器,域名 8.在购买的linux服务器 配置java环境,下载安装tomcat,nginx(通过xshell和xftp将window连接你的linux服务器) 9.访问,大功告成 功能总览: 1.i18n 语言切换 2.登陆,注册,找回密码 3

前后端分离与前后端不分离的区别

半世苍凉 提交于 2019-12-10 18:39:49
前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。 这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再 适用于前端App应用,为了对接App后端还需再开发一套接口。 请求的数据交互如下图: 前后端分离 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。 在前后端分离的应用模式中 ,前端与后端的耦合度相对较低。 在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。 对应的数据交互如下图 : 前后端分离并没有网上说的那么复杂。 1. 首先要知道所有的程序都是一数据为基础的,没有数据的程序没有实际意义,程序的本质就是对程序的增删改查。 2. 前后端分离就是把数据操作和显示分离出来。前端专注做数据显示,通过文字,图片或者图标等方式让数据形象直观的显示出来。后端专注做数据的操作

简单了解动静分离和前后端分离

不羁岁月 提交于 2019-12-08 14:40:26
一、前端和后端的概念(怎么区分是前端还是后端) 什么是前端? 这又可以分解成几个小问题。 1.JS是前端么? 2.只要用JS写的,都是前端么? 3.只要是前端工程师写的,都是前端么?4.大前端就是指的用JS语言写的前端,哪怕它是运行在服务器那一端么? 5.App算前端么? 6.Html+CSS算前端么? 7.小程序算前端么? 8.ReactNative算前端么? 通常情况下,我们说的前端,都是指浏览器这一端 ,浏览器这一端,又在通常情况下,都是用JS来实现的,所以又会引申为,用JS写的大部分程序都是前端,包括App,小程序,H5等。而NodeJS出现之后,用NodeJS写的后端部分,也会被人归类为前端,为了区分之前的前端,就给他们起了一个名字,叫做“大前端”。 但,这种以语言为分界点去区分前后端,真的合理么? 在过去,我们是不分前后端的,无论是Java还是JS,全都是一个人来写。 到底是什么原因让我们开始区分前后端了? 第一个,是可以并行开发。前后端的进度互不影响,在过去,前后端不分离的情况下,前端的工作量相对较少,一个前端可以对四个后端。可以理解为,前端花了一周时间写好了静态页面,只需要调几个Ajax接口,不需要路由,也不需要渲染,所以他可以把时间继续在下一个项目里。 第二个,是成本问题。在过去,后端的成本还是比前端要高一些。同样的工作,如果能拆给两个人做,一个成本高一点

前后端分离,跨域问题

邮差的信 提交于 2019-12-07 15:04:27
解决跨域问题 1. 什么是跨域   1.1.不同域名的资源访问,存在跨域   1.2.同一个域名不同端口的资源访问,也属于跨域   1.3二级域名不同的资源访问,也属于跨域 只要域名(ip )和端口号有一样不同,那么都是跨域 http://localhost:8080 前端系统 发送 Ajax 取后端系统获取数据 http://localhost:80 后端系统 以上的两个地址也是跨域 2.跨域问题 跨域不一定会有跨域问题。 因为跨域问题是浏览器对于ajax请求的一种安全限制, 也可以说是浏览器的同源策略 同源策略 限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 虽然说同源策略有效的防止了跨站攻击,但是给我们开发带来了不便。 3.跨域解决方案 目前比较常用的跨域解决方案有3 种: 3.1,Jsonp(json的变种 ) 3.2 ,nginx反向代理(部署) 3.3, CORS 规范化的跨域请求解决方案,安全可靠 。 优势: - 在服务端进行控制是否允许跨域,可自定义规则 - 支持各种请求方式 缺点: - 会产生额外的请求 , 要做询问 我们这里会采用cors 的跨域方案。 注意 spring 版本 修改 4.2.5 <spring.version>4.2.5.RELEASE</spring.version> 来源:

Nginx前后端分离配置实践-微服务模式

孤街浪徒 提交于 2019-12-07 11:37:28
Nginx前后端分离配置实践:本文主要记录前端通过Nginx与后端实现交互的配置。通过Nginx对外提供反向访问前端页面和后台接口,只需要在Nginx作简单的配置就可以对外发布应用服务(后端分模块开发,分别按照规范提供不同的业务接口-授权登录统一即可,实际上就是提供微服务)。同一个Nginx可以实现多个平台的服务配置,也就实现了微服务模式。 Nginx配置 主要关注 server(监控平台)的配置: worker_processes 1; events { worker_connections 128; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 监控平台 server { #配置HTTP服务器监听的端口号,这里默认写为8880 listen 8881; server_name localhost; location / { #替换下面的地址为您网页目录地址 root E:/work/cvnaviHtml/Monitor; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root

教你如何前后端完全分离(非api、ajax)

∥☆過路亽.° 提交于 2019-12-06 18:22:19
我的前后分离,不是api,不是ajax,我这里只讨论html与后端结合 前话 曾经风靡一时的dedecms相信做网站的十有八、九都知道,还有那么一些不是技术出生的人,通过看一下文档,也能访问出网站出来,有的人说dedecms太垃圾了,不知道是从哪些方面来说的,但不得不承认它的优势,又有哪个框架免费给你用,还这么方便的呢 话说回来,dedecms的一大好处就是会模板标签,差不多就会慢慢的做套网页了,真的就是这么简单 phper技术到底如何 之前我面试过一些人,当然我不会拿网上一些现成的试题,或感觉对工作没有实际意义的题去考面试者的 自称一到两年工作经验,当然也有3年左右的人(具体没法核实),问他们一些简单的问题他们都不能回答上来,真是不变码农(我这里指只知道码大量代码,而不管代码效率)也难呀 话说我的面试问题很简单(当然我只针对网页),用户了这么多的框架(yii、tp、larval、ecshop、dedecms、wp),不管哪一种,如果直接在网页上拉取数据库的数据? 已经没有几个人把原生php研究好再进行框架开发的,他们却不知道“直接在页面连接数据库,查询显示”,而是说我从来没有这么做过呀,从来都是从控制器读取数据赋值后,在模块里面取 真的就只能这样么,这里不得不说MVC真的很根深蒂固呀,有人说能实现功能就可以了,管它什么的呢,这样说你也对 引出问题 模板赋值,渲染,显示