用最直白的方式告诉你 什么是前后端分离
前后端分离很多文章都说不清楚,本来因为不懂才去看,但是看了他们写的之后我更不懂了,我现在来发表一下我的认知的前后端分离:
什么都不会就可以看
概念
前后端分离字面上解释就是前端和后端分开用:
什么是前端:即客户端,负责渲染页面的,简单来说就是页面。
什么是后端:就是服务器,负责收发http请求,和处理数据的。
他们之间是什么关系呢?简单来说就是:你现在正在看我的文章对吧?这个页面是靠前端技术来显示的,而上面的这些字和图片是存在服务器上的
什么是http请求和非前后端分离
我现在举个例子:你把你的钱存在银行里面,你去银行取钱是不是要告诉服务的人我可以取钱吗,这是我的卡号,这个问的过程就是http请求。
另一个例子:你现在访问https://www.bilibili.com/这个网页,是不是要在浏览器上输入网址然后敲下回车才能访问,这个浏览器就是客户端,而在你桥下回车之后的一小段时间里,浏览器就给哔哩哔哩的服务器发请求,说我要看你们这个网页,你通过一下嘛,然后服务器就把网页和数据发给你看了
上述的流程就是下图这样:这个就是非前后端分离的应用
什么是前后端分离
前后端分离最主要是把服务器分成了两个(前端服务器和后端服务器),以前只有一个服务器用来装全部的东西(页面和数据),现在分成两个了,前端服务器装页面,后端服务器装数据
下面我给个架构细说:
再用上面的例子,我们要访问的页面长这个样:
现在走一下流程:浏览器访问https://www.bilibili.com/这个网址,在敲下回车之后,浏览器向前端服务器发送http请求,和它说我想看这个页面你给我一下嘛,前端服务器收到以后说:可以啊,那我发给你。然后页面就发过来留在浏览器上了,但是这个时候页面上是什么都没有的,把页面想成一张白纸(因为前端服务器不存数据),接下来浏览器就自动读这个页面里的程序,然后总结了一下:啊,原来这个页面要这些数据啊,我现在去找后端服务器要。于是浏览器又向后端服务器说:我要xxx数据你给我发过来可以吗?后端服务器收到了,然后给浏览器发了一个文件,里面放了这些数据。接下来就是最后一步了,浏览器把收到的数据发到对应的页面里,通过程序渲染了一下就变成上面那个样子了。
接下来我就只说影响较大的优缺点了
优点
最大的优点在于增加了扩展性,仔细想想如果是以前的设计方案,所有东西都往一个服务器上塞,然后哪一天老板告诉你我们这个网页不仅仅要给电脑上的人用,我们还要开发成小程序,让大家在手机上用,这个时候咋办嘛,前端后端都要改呗,但是前后端分离就不一样了,前端服务器只负责怎么显示和你用在哪里都没有关系,那么就只用改后端咯,工作量就少了,于是架构就变成了这样:
缺点
对seo的影响很大:seo是搜索引擎优化,什么意思呢?比如你要找哔哩哔哩这个网址但是你记不得网址咋办,肯定是在百度上搜一下嘛,然后是这种样子的:就是上面有很多网页吧,如果哔哩哔哩是你写的网站,你是不是更希望它更靠前一点,这样就可以有更多的人来看了,而seo就是对这个顺序的一种解决办法。它一般是靠网络爬虫来对网站进行一次访问(就像我们上网一样),然后获取网页里面的信息,最后根据这些信息里的字词给我们做推荐,那么问题来了,如果采用前后端分离,数据全部装在后端服务器里,那么爬虫再怎么1访问也就只是收到一堆程序而已,和数据不沾边,你的网页排名就会低,这么说明白吧
用最直白的方式告诉你 什么是前后端分离相关推荐
- java前后端分离的实现方式_采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
MyUploader-Backend 单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 简介 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能. 前端采用 vue.js + ...
- 若依前后端分离项目部署最简单的方式(推荐)
对应若依前后端分离项目来说,部署的方式有很多种: 第1种方式:可以将前端打包整合到后端部署 第2种方式:可以使用tomcat部署(后端打war包+前端打dist包) 第3种方式:可以使用tomcat+ ...
- 从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
2019独角兽企业重金招聘Python工程师标准>>> 摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强.MVC模式最早用于Smalltalk语言 ...
- Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式
文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...
- .vue文件_Spring Boot + Vue 前后端分离,两种文件上传方式总结!
在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...
- 记录一种ssh旧系统和前后端分离新系统结合的解决方案,以及两系统间通过token进行认证的方式
一.背景介绍 公司现有一个ssh框架的旧系统,想要转型使用前后端分离vue+springboot的新框架.由于一些原因,无法完全转型,所以考虑新增的业务需求,使用在旧系统中嵌套新系统页面的方式,之后新 ...
- 06-若依前后端分离项目跨域问题解决方式
什么是跨域 跨域就是前后端分离项目前端无法把session等信息传递给后端服务器.跨域源自浏览器同源策略.同源策略是一种约定,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互. ...
- 若依前后端分离版本,Windows下使用Nginx代理的方式进行部署(全流程,图文教程)
场景 若依官网: http://doc.ruoyi.vip/ 前提: 服务器上安装Mysql,并将数据库导入,在SpringBoot中的application-druid.yml配置mysql数据库连 ...
- Spring Boot + Vue 前后端分离,两种文件上传方式总结
在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...
最新文章
- Java提高篇——Java实现多重继承
- PHP未定义名称的方法,PHP:“调用未定义的方法”......但方法是否已定义?
- ORACLE DATAGUARD 数据库---创建逻辑备用数据库
- 服务质量--成功的关键因素!
- centos下nginx安装和配置
- UI线程安全 runOnUiThread 和 Handler 一般用法
- SORPAS-焊接仿真模拟软件
- MUI框架学习——了解MUI
- nuc10fnh寒霜峡谷linux,英特尔(Intel)寒霜峡谷NUC10i5FNH使用体验
- 语音处理:霍夫曼编码算法原理分析
- 生命以负熵为生:零知识证明的前世今生
- 小学生python趣味编程-【少儿编程】python趣味编程第二课:写文字
- DPDKVPP关键技术文档总结
- 几种将将虚幻引擎内容流送到多个平台的推流方案比较
- 实验四:继承性和派生类 建一个楼房Building为基类,建立住宅类House继承Building,存储房号和面积,建立办公室类Office继承Building,存储办公室名称和电话
- Netty框架之责任链模式及其应用
- html加拼音注释,HTML——格式化文本标记、拼音/音标注释ruby 标记和rt/rp 标记、段落缩进标记blockquote、预格式化标记pre...
- 2021-2027全球与中国人体解剖学模型市场现状及未来发展趋势
- 梅克尔树Merkle trees
- 【知识图谱】03图谱设计(使用Protege)