什么是前后端分离项目
大家好!今天让创意岭的小编来大家介绍下关于什么是前后端分离项目的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
本文目录:
一、Web项目开发为何要走前后端分离模式?
如果是问“什么是正确的前后端分离”,我还真不敢回答,生怕自己的理解有什么偏差;但是问怎么“理解前后端分离”,那我可以结合自身的工作,谈谈我对前后端分离的理解,也欢迎大家提出不同的理解。
我07年参加工作就是做企业级项目的开发,那时候的一些项目都只有一个包,没有什么代码规范,业务逻辑散落在各处,甚至是JSP中直接访问数据库并做业务处理。
后来逐渐有了一些规范,页面就是页面,代码就是代码,很多项目开始使用Ajax框架。
发展的更进一步,后端代码有了分层,cotroller/service/dao,可能每个项目分层策略不同(三层和两层居多),每层的叫法不同(cotroller还是action),数据从页面到最后访问数据库,需要走到多个分层中。
不过到了此阶段,在企业级项目的开发过程中,Java程序员依然要兼顾前后端的开发,所以前端页面的样子嘛,达不到美观的程度,也就是能用。
前后端分离有很多的好处:前端开发和后端开发可以各司其职,约定好接口之后就可以并行开发;后端接口可以复用,如果项目同时有电脑网页端、移动网页端、APP端等多个入口的时候,后端可以只有一个;
带来好处的同时,也会有一些缺点,例如:增加了架构的复杂性,如果技术能力不足的团队,可以考虑半分离(例如我们部门都是企业级应用,都没有前端开发人员);如果是面向互联网的应用,需要搜索引擎抓取,就需要服务器端渲染;另外前后端交互的接口,也需要花时间和精力设计。
二、分布式开发,和前后端分离是一个意思吗?举个例子,系统a中有业务层和dao层,系统b中有前端页面和控制层
首先简单说一下:前后端分离就是前端页面只有前端代码,后端只负责出接口和数据库。前后端分离的好处就是维护方便,代码清晰,例如,现在有一个官方网站,那么前端要写的就是一个管理后台和前端页面,后端php(这里只是举例,其他语言的也是一样),需要做的是通过php写出数据接口,然后前端只需要通过接口来发送和返回数据。然后上线的时候前端只需要把前端代码打包上传到服务器就可以了,混合开发像java和jsp,它们是前端代码和后端代码一起写的,需要把代码一起打包上传到服务器
三、互联网项目为什么要前后端分离,有什么优缺点?
前端承担营运,后端承担管理。功能不一样没有什么优缺点。
四、前后端分离项目——登录Token校验思路
对token的校验分为前端和后端
前端: Vue-Cli 2.x + axios
后端:SpringBoot 2.3.4
这里的话,userToken和userId放到sessionStorage是关键步骤
后端主要是使用拦截器来进行请求的拦截和校验
解释一下思路:
这里的话,针对需要拦截的路径和需要放行的路径进行配置就行
关于redisTemple的引入这里就不再赘述。
到这里为止,前后端的token就都做完了,后面就再讲讲前端的一些其他思路吧
对于登录状态的判断,前端可以在router.foreach上对路由进行状态判定,从而实现页面程度的拦截(具体可以参考最后的参考文章2)
在使用拦截器后,会发现前端部分请求会无法正常到达后端,百度后发现是因为 axios发送正式请求前会先发送一个嗅探请求 ,而嗅探请求是不携带我们封装的header的,所以会导致部分请求会无法成功,解决的方式有很多种,这里的话是选择了在后端去直接处理
参考文章
1、SpringBoot加了拦截器后出现的跨域问题解析
https://blog.csdn.net/mrkorbin/article/details/104066979
2、Vue项目中实现用户登录及token验证
https://www.cnblogs.com/web-record/p/9876916.html
以上就是关于什么是前后端分离项目相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: