我们的 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 发请求获取数据就好了,拿到数据该渲染哪就渲染哪,至于数据,只要结构正确,一律认定就是正确的。

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

java web的动静分离_如何做前后端动静分离相关推荐

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

    我们的 ERP 系统就是前后端完全分离,毫无关联. 后端用的是改造的 Laravel 框架,将业务拆分.路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的 RESTful API. 前端采用 ...

  2. springboot jwt token前后端分离_为什么要 前后端分离 ?

    作 者:互扯程序 来 源:互扯程序 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(星标)公众号,重磅干货,第一时间送达! 本文知 ...

  3. shiro前后端分离_为什么要前后端分离?前后端分离的优点是什么?

    随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式.在实际工作中,前后端的接口联调对接工作量占HTML5大前端人员日常工作的30%-50%,甚至会更高.接下来 ...

  4. java web课程设计(简单商城的前后端双系统,基于maven三模块开发)

    1.系统分析 1.1需求分析 实现一个简单但功能完整的商城项目,从设计到实现,规范化完成该项目,锻炼javaweb项目的编写能力,理解软件工程的软件设计思想 1.2编程技术简介 本次课程主要使用的软件 ...

  5. guns企业高级单体版(前后端不分离)运行启动

    单体版分前后端分离与不分离,这里分享前后端不分离的搭建方法 访问guns官网https://www.stylefeng.cn,登录后可查看教程(账号密码见群公告) 官方教程不是最新的,有些地方写的不是 ...

  6. java web中英翻译_中英文翻译简单web项目示例(3)

    我们上一篇初步体验了一把百度翻译api的魅力,由于分享作者是一位java程序员,所以下载的是百度翻译java语言开发包,这节主要分享介绍基于java web项目嵌入百度翻译api做个简单的中文翻译英文 ...

  7. 基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台、多租户

    基于前端Vue后端.NetCore Web后台管理系统通用开本框架采用前后端分离技术,前端使用vue2.6.0,后端使用.netcore3.1,支持跨平台.多租户.支持MySQL/SQLServer/ ...

  8. 前后分离 php,php服务器如何做前后端分离?

    php代码写在HTML中,不存在纯粹的PHP文件和HTML文件,这就是前后端的不分离,这样会导致开发效率大大降低.所以我们就需要将PHP服务器与前端分离,实现前后端分离. 前后端分离优点: 1.为优质 ...

  9. 前后端不分离到分离演变,优势,前后端接口联调,排错

    前后端分离,不分离简介 前言 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构 ...

最新文章

  1. 博士毕业论文悲情致谢女友回应:学术是一场超越金钱的修行。
  2. 采购申请的处理流程 --- 责任链模式
  3. IoT 、5G与边缘计算将会擦出怎样的火花?
  4. Linux 虚拟化网络技术 — KVM + Linux Bridge 的网络虚拟化解决方案
  5. Onvif学习总结(转载)
  6. 实时事理学习与搜索平台DemoV1.0正式对外发布
  7. linux下无root权限安装python2.7和pip以及安装cuda9.0,cudnn7.4,pytorch-gpu
  8. 串行总线 —— I2C、UART、SPI
  9. python字符串操作方法_python字符串常用操作方法
  10. python实现 Floyd算法求解最短路径距离问题
  11. axure源文件_Axure函数应用:指示线跟随地图所选区域,并展示相应数据可视化...
  12. 【泛微E9开发】E9客户端下载页面修改方法
  13. 易语言技术-内存读写监视窥探技术
  14. 如何评价一个人的科研能力
  15. oracle 时间毫秒数,计算Oracle中两个时间戳之差(以毫秒为单位)
  16. 数数(数学题运算分配律)
  17. 详述SpringMVC中数据类型转换器
  18. 取消福昕阅读器的小手的向下的箭头
  19. IDEA 断点调试,为啥断点没有起作用
  20. EndNote20:强大的文献管理软件

热门文章

  1. 单位几个小伙子,又因为微服务的事吵的不可开交
  2. Jeecg-Boot 1.0 版本发布,基于SpringBoot+Mybatis+AntDesign快速开发平台
  3. 使用Spring Boot来加速Java web项目的开发
  4. 总结PLSQL的快捷键以及使用技巧
  5. Linux常用指令总结二~~
  6. 分布式开发必须了解的Zookeeper的Leader选举机制(源码解析)
  7. React个人入门总结《五》
  8. MYSQL GROUP BY 对多个字段进行分组
  9. 学习react的心路历程(一)
  10. MyBatis入门(一) -- 简介