当前位置:首页 » 网站资讯 » 如何查看网站后端技术架构教程
扩展阅读
联想i3电脑黑屏 2025-09-29 12:05:41

如何查看网站后端技术架构教程

发布时间: 2022-10-30 13:29:18

❶ 网站什么的要分前端和后端的是什么意思

网站的前端技术指:网站的视觉设计及网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax等。而网站后端技术则指:web服务器上编写程序的相关技术。

前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。

服务端编程是指在web服务器上编写程序并使之正常运行。在B/S模式下,当用户下载一个网页时,如果网页中包含服务端脚本程序,web服务器将首次执行网页中的脚本程序,然后把执行的结果网页发送到客户端浏览器显示。

(1)如何查看网站后端技术架构教程扩展阅读:

前端涉及的关键技术:

1、HTML技术

HTML是一种标记语言,能够实现Web页面并在浏览器中显示。HTML5作为HTML的最新版本,引入了多项新技术,大大增强了对于应用的支持能力,使得Web技术不再局限于呈现网页内容。

2、CSS技术

级联样式表(Cascading Style Sheet)简称“CSS”,是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。

3、JavaScript

是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。通过JavaScript实现相应的效果和交互。

❷ java项目中怎样看使用的是什么框架啊

1、首先使用开发工具打开以前练手的项目,如下图所示。

❸ 详细介绍Web前端与后端有什么区别(包括定义、特点、所用到的技术等(500字)

1.什么是前端开发?

前端,也称为“客户端开发”,简单来说,你可以在应用程序或网站的屏幕上看到的所有内容都属于前端。

通俗点说:web的本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等,包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。

1.1 网站和移动应用的前端

让我们考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——所有这一切都是前端。

移动应用的前端与网站相同。例如,你在移动或 Web 应用中看到的内容,按钮、图像是前端的一部分。此外移动屏幕还具有触摸响应功能,因此当应用响应你所做的所有手势时,需要进行缩放放大/缩小、双击、滑动等操作。

前端开发人员构建所有的这些。它们创造了你在屏幕上看到的外观和触摸到的体验。

Ionic,Swift,Kotlin,Bootstrap,Angular,Vue,jQuery,React.js 是用于前端开发的一些工具和技术。

1.2 物联网的前端

连接到互联网的任何对象都是IoT(物联网)设备。你可能在想物联网设备的前端如何工作?任何智能设备,如智能冰箱、远程 PoS 系统、智能手表、智能钱包,都需要用户可以与之交互以操作设备的“东西”。因此,“某物”是一种互动媒介,其元素就是物联网的前端。

物联网设备没有前端的说法,但设备包含一个固件,其行为类似于移动应用程序中的前端。此外该固件可以用C、C++、Lua、Python 和 JavaScript 等语言编写。

另外还有物联网设备的 UI/UX 设计和实现。

2.什么是后端开发?

后端,也称为“服务器端开发”,也就是在系统“后面”所发生的事情。同样,在后端服务器和浏览器或应用程序之间存储网站、应用数据和中间媒介的服务器都属于后端。简单来说,在应用程序或网站的屏幕上看不到的所有东西都是前端的后端。它更多的是与数据库进行交互以处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。

2.1 网站和移动应用后端

网站的后端需要设置服务器,存储和检索数据,以及将这些服务器与前端进行连接的接口。如果说前端开发人员梗关注网站的外观,后端开发人员则更更关注网站的速度、性能和响应能力,后端通过编码、云 API 和数据库进行集成。

就像前端一样,移动应用的后端开发在各个方面都与网站后端相同。此外,你为移动应用设置后端服务器的选项包括:云计算(AWS,Firebase)定制服务器或 MBaaS(移动后端即服务)。

Ruby,Apache,Nginx,PHP,MySQL,MongoDB 等用于后端开发的工具和技术很少。

2.2 物联网后端

物联网后端最重要的组成部分之一是云后端。显然大多数物联网设备都依赖云服务器对数据进行上传和下载,并将其处理为动作。

如果我们谈论高级物联网解决方案,后端开发可以扩大到 AI(人工智能)和 ML 等功能(机器学习)。

用于物联网项目的后端技术是Amazon IoT,Google Cloud,MQTT Broker,IFTTT等等。

综上所述,说通俗一点:

web前端分为网页设计师、网页美工、web前端开发工程师。

首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责;网页美工只针对UI这块的东西,比如网站是否做得漂亮;web前端开发工程师是负责交互设计的,需要和程序员进行交互设计的配合。

web前端需要掌握的有脚本技术javascript DIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。 后端的话可供开发的语言有 asp、php、jsp、.NET 这些后端开发语言的话搭建环境都不一样
实际的开发过程中,前端、后端开发人员的定位如下:
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。

3.前端 Vs 后端有什么区别?


ok,接近2000字了,应该是回答了你的问题了,如果有帮助到你,请采纳哦,谢谢!

❹ 现在网站前后端主要用什么技术和框架

web前端分为网页设计师、网页美工、web前端开发工程师
首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责
网页美工只针对UI这块儿的东西,比如网站是否做的漂亮
web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合。
web前端需要掌握的有脚本技术javascript DIV+CSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等。 后端的话可供开发的语言有 asp、php、jsp、.NET 这些后端开发语言的话搭建环境都不一样,具体如果你想学的话看是想从事前端部分还是后端程序部分。后端开发如果有一定的条件的话可以转为软件开发。不过要有一定的语言基础,类似java语言。C#等。关键是看你的兴趣爱好。
这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是。
在我们实际的开发过程中,我们当前这样定位前端、后端开发人员。
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。
现在来看,我们对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题。
Web前端: 顾名思义是来做Web的前端的。我们这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
Web后端:后端更多的是与数据库进行交互以处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等。
前端、后端的技术要求:
Web前端:
1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。
2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。
3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery
4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。
5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。
6)......
Web后端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解
2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力
3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑
4)精通面向对象分析和设计技术,包括设计模式、UML建模等
5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
6)......

❺ 急!关于网站后台 高分求助

有后台的程序必须用动态网页语言(asp;php....)这些语言设计。
而你只会html肯定是不能设计出有后台的网站。。
像你这样。有一点基础的。最好去网上搜和你目标差不多的动态源代码。下载到本地。用你学的技术修改为你自己的风格。这样就省事多了。
嗯。就这样了。还有不明白的。可以网络HI我。。不一定在线哦。

❻ 后端开发都需要那些技术

后端主要是让服务器、应用、数据库能够彼此交互,需要考虑如何实现功能、数据的存取、平台的稳定性与性能等。常用的脚本语言有php、 java 、 python、C、C++等,以java为例主要用到的技术包括但不限于Struts、spring、springmvc 、Hibernate、Http协议、Servlet、Tomcat服务器等
第一,Servlet技术。Servlet技术是Java后端的重要技术之一,作为Java Web开发的核心组件,Servlet承担了Web MVC结构中的核心作用(功能导航)。传统的Model2结构(Servlet+JavaBean+JSP)虽然在目前已经很少使用了,但是Web开发的基本结构依然没有改变。Servlet技术的应用涉及到Web容器、会话(HttpSession)、安全、同步、Web应用部署等相关内容。

第二,Java操作数据库。后端开发免不了与数据库打交道,所以掌握Java的数据库操作是一个基本要求。Java操作数据库涉及到的内容有JDBC、JNDI、RMI、DAO等内容,其中使用RMI+JDBC是构建java数据库开发的一个常见的解决方案,而JNDI则是对各种资源的定义。

第三,Spring框架。Spring+SpringMVC+MyBatis是目前一个比较常见的后端开发方案,Spring的原理就是构建了一个“业务组件容器”,SpringMVC则是Web MVC的一个具体实现框架,而MyBatis则是一个基于DAO的实现框架。从性能的角度来说,Spring是EJB的轻量级解决方案,得到了广大Java程序员的欢迎。如果有Servlet以及数据库操作的基础,那么学习这几个框架的使用是一件非常轻松的过程。虽然基于Spring的编程比较方便,但是Spring也有缺点,比如配置文件过于繁琐。

第四,结合hadoop构建Java的分布式开发。Java的分布式开发是提高Java后端处理能力的重要内容,RMI是Java分布式开发比较常见的解决方案,学习起来也比较简单

❼ 前后端分离方案以及技术选型

作者:关开发

一.什么是前后端分离?

理解前后端分离大概可以从3个方面理解:

1. 交互形式

2. 代码组织形式

3. 开发模式与流程

1.1 交互形式

前后端不分离

后端将数据和页面组装、渲染好了之后,向浏览器输出最终的html;浏览器接收到后会解析html,解析引入的css、执行js脚本,完成最终的页面展示。

前后端分离

后端只需要和前端约定好接收以及返回的数据格式(一般用JSON格式),向前端提供API接口。前端就可以通过HTTP请求调用API的方式进行交互。前端获取到数据后,进行页面组装、渲染,最终在浏览器呈现。

1.2 代码组织形式

前后端不分离

在web应用早期的时候,前端页面以及后台业务数据处理的代码都放在一个工程下,甚至放在同一目录下,前端页面夹杂着后端代码。前、后端开发工程师都需要把整套代码导入开发工具才能开发。此阶段下前后端代码以及工作耦合度太高,前端不能独立开发和测试,后端人员也要依赖前端完成页面后才能完成开发。最糟糕的情况是前端工程师需要会后端模板技术(jsp),后端工程师还要会点前端技术,需要口头说明页面数据接口,才能配合完成开发。否则前端只能当一个“切图仔”,只输出HTML、CSS、以及很少量与业务逻辑无关的js;然后由后端转化为后端jsp,并且还要写业务的js代码。

前后端分离

前后端代码放在不同的工程下,前端代码可以独立开发,通过mock/easy-mock技术模拟后端API服务可以独立运行、测试;后端代码也可以独立开发,运行、测试,通过swagger技术能自动生成API文档供前端阅读,还可以进行自动化接口测试,保证API的可用性,降低集成风险。

1.3 开发模式与流程

前后端不分离

在项目开发阶段,前端根据原型和UI设计稿,编写HTML、CSS以及少量与业务无关的js(纯效果那些),完成后交给后台人员,后台人员将HTML转为jsp,并通过JSP的模板语法进行数据绑定以及一些逻辑操作。后台完成后,将全部代码打包,包含前端代码、后端代码打成一个war,然后部署到同一台服务器运行。顶多做一下动静分离,也就是把图片、css、js分开部署到nginx。

具体开发流程如下:图略

前后端分离

实现前后端分离之后,前端根据原型和UI设计稿编写HTML、CSS以及少量与业务无关的js(纯效果那些),后端也同时根据原型进行API设计,并与前端协定API数据规范。等到后台API完成,或仅仅是API数据规范设定完成之后。前端即可通过HTTP调用API,或通过mock数据完成数据组装以及业务逻辑编写。前后端可以并行,或者前端先行于后端开发了。

具体开发流程如下:图略

二、前后端分离的好处与坏处。

从上面3个方面对比了之后,前后端分离架构和传统的web架构相比,有很大的变化,看起来好处多多。到底是分还是不分,我们还是要理性分析是否值得才去做。

从目前应用软件开发的发展趋势来看,主要有两方面需要注意:

· 越来越注重用户体验,随着互联网的发展,开始多终端化。

· 大型应用架构模式正在向云化、微服务化发展。

我们主要通过前后端分离架构,为我们带来以下四个方面的提升:

· 为优质产品打造精益团队

通过将开发团队前后端分离化,让前后端工程师只需要专注于前端或后端的开发工作,是的前后端工程师实现自治,培养其独特的技术特性,然后构建出一个全栈式的精益开发团队。

· 提升开发效率

前后端分离以后,可以实现前后端代码的解耦,只要前后端沟通约定好应用所需接口以及接口参数,便可以开始并行开发,无需等待对方的开发工作结束。与此同时,即使需求发生变更,只要接口与数据格式不变,后端开发人员就不需要修改代码,只要前端进行变动即可。如此一来整个应用的开发效率必然会有质的提升。

· 完美应对复杂多变的前端需求

如果开发团队能完成前后端分离的转型,打造优秀的前后端团队,开发独立化,让开发人员做到专注专精,开发能力必然会有所提升,能够完美应对各种复杂多变的前端需求。

· 增强代码可维护性

前后端分离后,应用的代码不再是前后端混合,只有在运行期才会有调用依赖关系。应用代码将会变得整洁清晰,不论是代码阅读还是代码维护都会比以前轻松。

那么前后端分离有什么不好的地方吗?我目前是没有想到,除非你说会增加前端团队的配备,后端工程师会变的不全能。。。

二、前后端分离架构方案。

实现前后端分离,主要是前端的技术架构变化较大,后端主要变为restfull 风格API,然后加上Swagger技术自动生成在线接口文档就差不多了。

对于目前用于前后端分离方案的前端技术架构主要有两种:

· 传统SPA

· 服务端渲染SSR

2.1 传统SPA

传统SPA指的是单页面应用,也就是整个网站只有一个页面,所有功能都通过这一个页面来呈现。因为一个人的肉眼,某一个时间点看一个页面,既然如此何必要不同功能做多个页面呢?只保留一个页面作为模板,然后通过路由跳转来更新这个模板页面的内容不就可以了吗?确实如此,现在通过reac全家桶、tvue全家桶,模块化、路由、wabpack等技术轻而易举就能实现一个单页面应用。

单页面应用的运行流程

1.用户通过浏览器访问网站url

2.单页面的html文件(index.html)被下载到浏览器,接着下载html里面引用的css,js。

3.css,js下载到浏览器完成之后,浏览器开始解析执行js向后端服务异步请求数据。

4.请求数据完成后,进行数据绑定、渲染,最终在用户浏览器呈现完整的页面。

2.2 服务端渲染

服务端渲染的方案指的是数据绑定,渲染等工作都放在服务端完成,服务端向浏览器输出最终的html。大家看完这个是不是有个疑问,这不是又回到了前后端不分离的时代了吗?答案是否定的,因为这里的服务端是用来执行前端数据绑定、渲染的,也就是把浏览器的一部分工作分担到了服务端。而目前具备这只种能力的服务端是NodeJs服务端。

它的原理其实就是在浏览器与前端代码中间插入了一个NodeJs服务端。浏览器请求前端页面时,会先经过NodeJS服务端,由NodeJs去读取前端页面,并执行异步后端API,获取到数据后进行页面数据绑定,渲染等工作,完成一个最终的html然后返回浏览器,最后浏览器进行展示。

服务端渲染应用的运行流程:

1.用户通过浏览器访问网站url

2.NodeJS服务端接收到请求,读取到对应的前端html,css,js。

3.NodeJS解析执行js向后端API异步请求数据。

4.NodeJs请求数据完成之后,进行数据绑定、渲染,得到一个最终的html。

5.NodeJs向浏览器输出html,浏览器进行展示。

PS:其实本质就是把前端编写成一个nodeJs的服务端web应用。实施服务端渲染后,我们最终运行的是一个Nodejs服务端应用。而单页面应用是把静态页面部署到静态资源服务器进行运行。

看到这里,你是否又有疑问,为什么要这么麻烦搞服务端渲染呢?

2.3 SPA与服务端渲染方案对比

SPA的优点是开发简单,部署简单;缺点是首次加载较慢,需要较好的网络,不友好的SEO。

so,以下就是使用服务端渲染的理由了(摘取vue官方说法):

与传统 SPA (单页应用程序 (Single-Page Application)) 相比,服务器端渲染 (SSR) 的优势主要在于:

· 更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。

请注意,截至目前,Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引。在这里,同步是关键。如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。

· 更快的内容到达时间 (time-to-content),特别是对于缓慢的网络情况或运行缓慢的设备。

无需等待所有的 JavaScript 都完成下载并执行,才显示服务器渲染的标记,所以你的用户将会更快速地看到完整渲染的页面。通常可以产生更好的用户体验,并且对于那些“内容到达时间(time-to-content) 与转化率直接相关”的应用程序而言,服务器端渲染 (SSR) 至关重要。

使用服务器端渲染 (SSR) 时还需要有一些权衡之处:

· 开发条件所限。浏览器特定的代码,只能在某些生命周期钩子函数 (lifecycle hook) 中使用;一些外部扩展库 (external library) 可能需要特殊处理,才能在服务器渲染应用程序中运行。

· 涉及构建设置和部署的更多要求。与可以部署在任何静态文件服务器上的完全静态单页面应用程序 (SPA) 不同,服务器渲染应用程序,需要处于 Node.js server 运行环境。

· 更多的服务器端负载。在 Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用 CPU 资源 (CPU-intensive - CPU 密集),因此如果你预料在高流量环境 (high traffic) 下使用,请准备相应的服务器负载,并明智地采用缓存策略。

以vue为例,实施服务端渲染可以查看官方指南: https://ssr.vuejs.org ,或选择Nuxt.js

2.4 预渲染技术

如果你调研服务器端渲染 (SSR) 只是用来改善少数营销页面(例如 /, /about, /contact 等)的 SEO,那么你可能需要预渲染。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时 (build time) 简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将你的前端作为一个完全静态的站点。

如果你使用 webpack,你可以使用 prerender-spa-plugin 轻松地添加预渲染。它已经被 Vue 应用程序广泛测试 - 事实上,作者是 Vue 核心团队的成员。

prerender-spa-plugin: https://github.com/chrisvfritz/prerender-spa-plugin

三、前后端分离技术选型

- artTemplate + bootstrap(不推荐, 不算完全前后端分离)

- vue全家桶(推荐)

- react全家桶 (推荐,生态全)

❽ 目前流行的前后端架构究竟应该怎么

一般而言:前端的技术框架是: vue全家桶+nodejs后端的技术框架是:spring全家桶(springboot,springcloud)等推荐看下传智播客的相关课程很高兴您能一直采纳我的回答,希望一直为您提供帮助

❾ 后端网络架构

本文概述了服务器、数据库、路由,以及在客户端发出请求和收到响应之间发生的任何其他事情。

软件工程师似乎总是在讨论他们应用程序的前端和后端。但这到底是什么意思?

前端是在客户端执行的代码。这些代码(通常是HTML、CSS和JavaScript)在用户的浏览器中运行并创建用户界面。

后端是在服务器上运行的代码,它接收来自客户端的请求,并包含将适当的数据送回给客户端的逻辑。后端还包括数据库,它将持久地存储应用程序的所有数据。本文重点介绍服务器端的硬件和软件,使之成为可能。

如果你想复习一下这些话题,可以回顾一下 HTTP[1] 和 REST[2] 。这些是为客户和服务器之间的请求-响应循环提供结构的主要约定。

让我们先回顾一下客户端和服务器的关系,然后我们就可以开始把所有的碎片放在一起了

客户端是向后端发送请求的任何东西。它们通常是浏览器,为HTML和JavaScript代码提出请求,它们将执行这些代码来向终端用户显示网站。然而,有许多不同类型的客户端:它们可能是一个移动应用程序,一个运行在其他服务器上的应用程序,甚至是一个支持网络的智能设备。

后端是处理传入的请求并生成和发送响应给客户端所需的所有技术。这通常包括三个主要部分。

服务器只是一台听从传入请求的计算机。尽管有一些机器是为这一特定目的而制造和优化的,但任何连接到网络的计算机都可以充当服务器。事实上,在开发应用程序时,你经常使用你自己的计算机作为服务器。

服务器运行一个应用程序,其中包含如何根据 HTTP verb[3] 和 Uniform Resource Identifier (URI)[4] .来响应各种请求的逻辑。HTTP verb和URI的配对被称为路由,根据请求对它们进行匹配被称为路由。

这些处理函数中的一些将是中间件。在这里,中间件是指在服务器接收请求和发送响应之间执行的任何代码。这些中间件函数可能会修改请求对象,查询数据库,或以其他方式处理收到的请求。中间件函数通常通过将控制权传递给下一个中间件函数来结束,而不是通过发送一个响应。

最终,一个中间件函数将被调用,通过向客户端发送一个HTTP响应来结束请求-响应循环。

通常,程序员会使用Express或Ruby on Rails等框架来简化路由的逻辑。现在,只要想一想,每个路由可以有一个或多个处理函数,每当对该路由的请求(HTTP verb和URI)被匹配时就会被执行。

服务器发回的数据可以有不同的形式。例如,服务器可能会提供一个HTML文件,以JSON形式发送数据,或者它可能只发回一个[HTTP状态代码](HTTP status code)。当你试图导航到一个不存在的URI时,你可能已经看到了状态代码 "404 - Not Found",但还有许多状态代码表明服务器收到请求时发生了什么。

数据库通常用在网络应用程序的后端。这些数据库提供了一个接口,以持久的方式将数据保存在内存中。将数据存储在数据库中,既可以减少服务器CPU主内存的负载,又可以在服务器崩溃或断电时检索到数据。

许多发送到服务器的请求可能需要进行数据库查询。一个客户可能会请求存储在数据库中的信息,或者一个客户可能会在提交请求时提交数据,以添加到数据库中。

API是一个明确定义的不同软件组件之间的通信方法的集合。

更具体地说,Web API是由后端创建的界面:端点的集合和这些端点暴露的资源。

一个网络API的定义是它可以处理的请求类型,这是由它定义的路由决定的,以及客户在击中这些路由后可以期望收到的响应类型。

一个Web API可以用来为不同的前端提供数据。由于Web API可以提供数据而不真正指定数据的查看方式,因此可以创建多个不同的HTML页面或移动应用程序来查看来自Web API的数据。

让我们把这一切变得更具体一些,以一个客户向服务器发出请求时发生的主要步骤为例。

1.Alice 正在SuperCoolShop.com上购物。她点击了一张她的智能手机的封面图片,这个点击事件向http://www.SuperCoolShop.com/procts/66432,发出了一个GET请求。

记住,GET描述了请求的种类(客户只是要求提供数据,而不是改变什么)。URI(统一资源标识符)/procts/66432指定客户正在寻找关于一个产品的更多信息,而这个产品的ID是66432。

SuperCoolShop有大量的产品,以及许多不同的类别来过滤它们,所以实际的URI会比这更复杂。但这是请求和资源标识符工作的一般原则。

2.Alice 的请求穿过互联网到达SuperCoolShop的一个服务器。这是整个过程中较慢的一个步骤,因为请求的速度不能超过光速,而且它可能有很长的路程要走。由于这个原因,用户遍布世界各地的大型网站会有许多不同的服务器,他们会将用户引向离他们最近的服务器

3.正在积极监听所有用户的请求的服务器收到了Alice的请求!

4.匹配这个请求的事件监听器(HTTP动词:GET,URI:/procts/66432)被触发。在请求和响应之间,在服务器上运行的代码被称为中间件。

5.在处理请求时,服务器代码会进行数据库查询,以获得关于这个智能手机案例的更多信息。该数据库包含了Alice想知道的关于这个智能手机外壳的所有其他信息:产品的名称、产品的价格、一些产品评论,以及一个提供产品图片路径的字符串。

6.数据库查询被执行,数据库将请求的数据发回服务器。值得注意的是,数据库查询是这个过程中比较慢的步骤之一。从静态内存中读和写是相当慢的,而且数据库可能是在与原始服务器不同的机器上。这个查询本身可能要穿过互联网

7.服务器从数据库中收到了它所需要的数据,现在它已经准备好构建并向客户发送其响应。这个响应体包含了浏览器所需要的所有信息,以向Alice展示她所感兴趣的手机壳的更多细节(价格、评论、尺寸等)。响应头将包含一个HTTP状态代码200,表示请求已经成功。

8.响应会穿越互联网,回到Alice的电脑。

9.Alice的浏览器收到响应,并使用这些信息来创建和呈现Alice最终看到的视图

[1] HTTP: https://www.codecademy.com/articles/http-requests
[2] REST: https://www.codecademy.com/articles/what-is-rest
[3] HTTP verb: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
[4] Uniform Resource Identifier (URI): https://developer.mozilla.org/en-US/docs/Glossary/URI