JavaWeb项目大多数2.

前后端分离已成为互联网项目开发的业界标准使用方式,通过+的方式(也可以中间加一个)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。正是因为如上缺点,我们才亟需真正的前后端分离架构。前后端各司其职,后端专注自己的业务逻辑开发,前端专注产品效果开发。

1.

2.

3.

4.

1、背景

前后端分离已成为互联网项目开发的行业标准。 + 方法(或者中间也可以加一个)可以有效解耦,前后端分离将是未来大规模分布式架构和弹性计算架构的基础。 ,微服务架构,多终端服务(多客户端,如浏览器、车载终端、、IOS等)打下坚实的基础。这一步是系统架构从猿进化到人的唯一途径。

核心思想是前端HTML页面通过AJAX调用后端API接口,使用JSON数据进行交互。

一般情况下,外网只能访问web服务器,内网只能访问应用服务器。

以前的 Java Web 项目大多是 Java 程序员,他们既是父亲又是母亲,从事前端和后端工作。随着时代的发展,越来越多的大中小型企业开始越来越清晰的区分前端和后端的界限。前端工程师只关心前端事务,后端工程师只关心后端事务。俗话说,艺术行业有专长。如果一个人什么都擅长,那么他终究不是什么都擅长。大中型企业需要专业人才,小企业需要全才,但个人职业发展需要前后端分离。

2、不分时代(各种联轴器)

早期主要使用MVC框架。 Jsp+的结构图如下:

图片服务器分离会影响seo吗_前后端 分离 seo_前后端分离seo怎么做

几乎所有请求都发送到控制器,控制器接受请求并根据请求信息将它们分派到适当的 JSP 来响应。同时,也根据JSP的要求生成实例并输出到JSP环境中。 JSP中的数据可以直接调用方法获取,也可以使用自定义标签获取。

需要注意的是,这个View还可以使用、、等模板引擎,使用这些模板引擎可以让开发过程中的分工更加清晰,提高开发效率。

那么,在这个时期,有两种发展方式:

方法一

前后端分离seo怎么做_图片服务器分离会影响seo吗_前后端 分离 seo

方法二

图片服务器分离会影响seo吗_前后端 分离 seo_前后端分离seo怎么做

方法 2 已被淘汰。主要有两个原因:

因此,第二种方法逐渐不被采用。但是,不得不说,第一种方式,其实很多小型传统软件公司还在使用。那么,方法一和方法二的共同缺点是什么?

1、前端无法单独调试,开发效率低;

2、前端难免会遇到后端代码,例如:

<body>
   
<%
       request.setCharacterEncoding("utf-8")
       String name=request.getParameter("username");
       out.print(name);
   %>

body>

这个方法太耦合了。好吧,即使您使用模板引擎,也无法编写 Java 代码。前端也不可避免地要重新学习模板引擎的模板语法,无谓地增加了前端的学习成本。就像我们不想为后端开发编写前端一样,想想如果将前端代码嵌入到后端代码中,您会有什么感受?因此,这种方法是非常不合适的。

3、其他一些由JSP本身引起的问题比如JSP第一次运行很慢,因为它包含一个将JSP翻译成的步骤。再比如,由于同步加载,当JSP中的内容很多时,页面响应会很慢。

3、半分开时间

前后端半分离,前端负责开发页面,通过接口(Ajax)获取数据,使用Dom操作将页面与数据绑定,最后通过前端呈现页面。这就是 Ajax 与 SPA 应用程序(单页应用程序)结合的方式。结构图如下:

前后端 分离 seo_前后端分离seo怎么做_图片服务器分离会影响seo吗

步骤如下:

后端提供JSON格式的API接口供最终使用,同时也提供JSON格式的API接口给WEB。

那么意味着WEB工作流程是:

这些步骤是在用户使用的设备中一步一步进行的,也就是说用户的设备性能与APP的运行速度有更密切的关系。也就是说,如果用户的设备非常低端,那么APP打开页面的速度会比较慢。

图片服务器分离会影响seo吗_前后端分离seo怎么做_前后端 分离 seo

为什么说是半分离的?因为不是所有的页面都是单页面应用,在多页面应用的情况下,因为前端没有层,前端需要和后端商量。我们的页面应该用Json同步输出还是异步渲染?而且,即使在此期间,通常由一名工程师完成所有前端和后端工作。因此,现阶段只能算一半分离。

首先,这种方式的优势是显而易见的。前端不会嵌入任何后端代码。前端专注于HTML、CSS、JS的开发,不依赖后端。也可以自己模拟 Json 数据来渲染页面。如果发现bug,可以快速定位问题。

但是,这种架构下存在明显的缺陷。最明显的是:

正是由于以上缺点,我们迫切需要一个真正的前后端分离架构。

4、分离时代

在前后端完全分离的时期,前端的范围扩大了,层被认为是前端的一部分。在此期间:

但是服务端人员不熟悉前端HTML结构,前端不懂后端代码。如何实现层?这就是 node.js 的魔力。 Node.js 适用于高并发、I/O 密集、业务逻辑量少的场景。最重要的一点是前端不需要学习另一种语言。对于前端,熟悉度大大提高。

前后端 分离 seo_前后端分离seo怎么做_图片服务器分离会影响seo吗

您可以将其视为与前端交互的 api。一般来说,角色相当于mvc中的C(控制器)。路由的实现逻辑是将前端静态页面代码作为字符串发送给客户端(如浏览器)。简单理解可以理解为路由是提供给客户端的一组api接口,但是返回的数据是一串页面代码。就是这样。

用作桥接来自服务器端 API 的 JSON 输出的桥梁。由于性能等原因,后端提供的接口返回的数据格式可能不适合前端直接使用。前端需要的排序和过滤功能,以及视图层的页面展示,都可能需要对提供的数据进行第二次处理。虽然这些处理可以在前端进行,但由于数据量大,可能会浪费浏览器的性能。所以现在,添加一个Node中间层是一个很好的解决方案。

前后端 分离 seo_图片服务器分离会影响seo吗_前后端分离seo怎么做

() 不再直接请求 JSP API,而是:

这样浏览器得到的是一个普通的HTML页面,而不是发送Ajax请求服务器。

淘宝前端团队提出的中途岛( )结构如下图所示:

前后端 分离 seo_图片服务器分离会影响seo吗_前后端分离seo怎么做

添加node.js作为中间层有什么好处?

1、提高了适应性;其实在开发过程中,我们经常会为PC、APP开发一套前端。其实对于这三个终端来说,大部分的终端业务逻辑都是一样的。唯一不同的是交互呈现逻辑不同。

如果层在后端手中,后端维护这些不同侧页的逻辑,模板无法复用,增加了与前端的沟通成本。如果加上node.js层,架构图如下:

前后端 分离 seo_图片服务器分离会影响seo吗_前后端分离seo怎么做

在这种结构下,各个前端的界面展示逻辑由节点层自己维护。如果产品经理中间要换界面,前端可以专职维护,后端不用操心。前后端各司其职,后端专注于自身业务逻辑开发,前端专注于产品效果开发。

2、响应速度提升;我们有时会遇到后端返回给前端的数据过于简单,前端需要对这些数据进行逻辑运算。那么当数据量比较小的时候,对它进行分组操作等操作是没有影响的。但是,当数据量很大时,就会出现明显的卡顿效应。这时候node中间层其实可以把很多这样的代码放到node层去处理,也可以为后端共享一些简单的逻辑,也可以使用模板引擎自己掌握前台的输出。这大大提高了灵活性和响应能力。

3、性能提升;每个人都应该了解单一职责原则。从这个角度来看,当我们请求一个页面时,可能要响应很多后端接口。请求越多,自然速度越慢。这种现象最后更加严重。使用node作为中间层,可以将页面所需的多个后端数据直接在内网阶段组装起来,然后统一返回到前端,这样会得到更好的性能。

4、异步和模板统一;淘宝首页是由几十个HTML片段拼凑而成的(每个片段一个文件)。在PHP同步这几十个片段之前,必须是串行的,Node可以是异步的,读取文件可以是并行的。一旦这些段也包含业务逻辑,异步的优势就很明显了。最先渲染的真实文件会先输出显示。

前端机器的文件系统越复杂,页面碎片越多,这种异步提速效果就越明显。前后端模板的统一在无线领域非常有用。 PC页面和WIFI场景页面适合前端渲染(后端数据Ajax到前端),2G、3G弱网环境适合后端渲染(数据吐到前端与页面),所以同一个模板在不同条件下采用不同的渲染通道,模板只需要开发一次。

加入中间层后的前后端职责划分:

图片服务器分离会影响seo吗_前后端分离seo怎么做_前后端 分离 seo

5、总结

从经典JSP++的MVC时代,到SSM()、SSH(++)的Java框架时代,再到前端框架(,,,)主导的MV*时代,再到领先的全- 时代,技术和架构一直在进步。虽然“全栈式开发”模式令人兴奋,但要将基于 Node 的全栈式开发变成稳定且所有人都能接受的东西,还有很长的路要走。

创新之路不会停止。无论是前后端分离模式还是其他模式,都是为了更方便地解决需求,但都只是一个“中转站”。前端项目和后端项目是两个项目,放在两个不同的服务器上,需要独立部署,两个不同的项目,两个不同的代码库,不同的开发者。前端只需要关注页面的样式和动态数据的解析渲染,而后端则关注具体的业务逻辑。

参考

阅读这篇文章你有什么收获吗?请转发并分享给更多人

图片服务器分离会影响seo吗_前后端分离seo怎么做_前后端 分离 seo

免责声明:本文来自网络用户投稿,不代表本站观点和立场。如有侵权请发送邮件至tzanseo@163.com告知本站删除,本站不负任何责任及承诺。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

发表评论

登录后才能评论