Java 动静分离_如何做前后端动静分离

Java 动静分离_如何做前后端动静分离我们的ERP系统就是前后端完全分离,毫无关联。后端用的是改造的Laravel框架,将业务拆分、路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的RESTfulAPI。前端采用Vue.js+Bootstrap构建。补充说明题主在问这个问题之前,有必要对HTTP协议有一定的了解,这样你就不会在一些细枝末节无限纠结。因为本质上前后端的区别就在于一个是请求方、一个是响应…

大家好,又见面了,我是你们的朋友全栈君。

我们的 ERP 系统就是前后端完全分离,毫无关联。

后端用的是改造的 Laravel 框架,将业务拆分、路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的 RESTful API。

前端采用 Vue.js + Bootstrap 构建。

补充说明

题主在问这个问题之前,有必要对 HTTP 协议有一定的了解,这样你就不会在一些细枝末节无限纠结。因为本质上前后端的区别就在于一个是请求方、一个是响应方。

以往的不分离的开发,前端的请求往往是通过点击某个超链接,然后由浏览器接管后续,浏览器自行发出请求获取数据并刷新整个页面,后端则是收到请求后,由 PHP 这类后端脚本直接输出一个完整的 HTML 页面。

后来 Ajax 来了,则是由 Javascript 脚本触发事件,可控的让浏览器在特定条件下发出有限定的请求头的 HTTP 请求,并且收到响应后,依旧由脚本自行处理而不是以往浏览器直接渲染输出,这就使得前端可以实现局部刷新的功能。

理解这个以后就很简单了,后端只是根据请求输出数据,请求中无非包含几个关键数据:

请求的资源是什么

请求的资源的限定条件

请求的参数

请求的数据体

请求的资源就是我们说的 Request URI,比如向 http://www.a.com/order/128141/detail 发起的请求,资源就是 /order/128141/detail。

资源限定条件对于任何请求都适用,往往以 Query String(查询字符串) 体现,比如 http://www.a.com/shop/goods?name=test&sort=time&page=2,这里面 ? 后面的部分就是查询字符串,正如其 查询 二字的意义,就是用来限定资源结果集的。

查询字符串常常被小白误解为就是用来传递数据的,并将 $_GET 和 $_POST 都作为传递和获取数据的方式,如果长期都有这种意识,PHP 活该被人瞧不起啊。。

请求参数就是一些在 Header 部分的玩意儿,一般常见的就是类似于 Cookie,Accept 等等,用来告诉服务器一些请求者的基本信息,后端的权限验证基本就是利用这一部分实现的,不完全需要利用 Cookie 来作为实现 Session 的唯一渠道,完全可以按照规范实现自己的一套认证和会话流程。

最后就是请求的数据体,对于 GET,DELETE 请求,不存在传递数据(GET 就是获取,DELETE 就是删除,何来传递数据?),但是对于 POST,PUT 则需要通过请求体传递数据,比如表单提交、比如文件上传。

后端利用请求中大大小小的数据,完全可以构建一个层次分明(利用中间件实现)的过滤流程,配合合理的路由模块和控制器,就很容易实现后端的分离。

前端玩法也很多,我就拿 ajax 这种最简单实用的来说。无论你是否使用了前端框架,ajax 是不会变的,它是一种请求的渠道。

说了上面这么多,你必须要明白要分离,就要分清职责。前端就是获取数据的,那么利用 ajax 发请求获取数据就好了,拿到数据该渲染哪就渲染哪,至于数据,只要结构正确,一律认定就是正确的。

// 写了一堆,,有空再补充

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137789.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 按位取反计算_二进制按位取反怎么算

    按位取反计算_二进制按位取反怎么算(按位取反)运算的理解:按照我平时的理解,当我使用~按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是~按位取反的运算结果(这点没问题)例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下:5的二进制表达式为:00000000000000000000000000000101执行~运算,即~5后:11…

  • Latex 左右引号

    Latex 左右引号参考:LaTeX技巧218:LaTeX如何正确输入引号:双引号“”单引号‘’Latex左右引号在latex中加引号时,使用""的输出为两个同向的引号;正确的做法为:“Firewall”2018.2…

  • php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,…

    php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,…

    2021年10月29日
  • SPSS聚类分析「建议收藏」

    SPSS聚类分析「建议收藏」聚类分析是根据对象的特性对其进行定量分类的一种多元统计方法。比如:不同地区城镇居民收入和消费状况的分类研究;区域经济及社会发展水平的分析及全国区域经济综合评价…….通常聚类分析分为Q型聚类

  • Pycharm自动导入模块小技巧「建议收藏」

    Pycharm自动导入模块小技巧「建议收藏」周末愉快!不知道大家周末写不写代码,哈哈,反正我已经加完班回来了,今天分享一个能提高编码效率的小技巧,可能你早就在用了,也可能像我一样刚学会,还是趁热跟大家分享一下。如果能把工具熟练运用,往往能达到事半功倍的效果,Pycharm是很多Python开发者的首选IDE,提供各种快捷键、重构功能、调试技巧等,Python是动态语言,对于自动导入模块没有静态语言那么方便,但有了Pycharm,还是…

  • ICMP协议报文_三菱mc协议报文格式

    ICMP协议报文_三菱mc协议报文格式ICMP协议及报文格式

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号