我正在学习网络数据课程,所以我知道当我们想在浏览器上检索网页时,我们使用http或https等通信协议进行请求-响应循环,而web服务是一个软件,我不知道它存储在哪里,也不知道它是如何访问的,所以我们可以让来自不同体系结构的两个应用程序使用序列化进行通信像XML或JSON这样的语言我不知道web服务和http之间的区别,它们都是将两台不同的计算机连接在一起的一种方式,更让我困惑的是api,根据我所做的研究,它是用来访问web服务的东西。
让我们从定义问题中的所有术语开始,因为它有点到处都是。
HTTP(超文本传输协议(:允许您通过web传输数据。您的浏览器将使用HTTP向您的web服务执行请求。
服务:执行特定任务的任何软件。我们对web服务感兴趣,它通常通过HTTP调用,但它可以是其他任何东西,如Linux信号。
现在,让我们假设它侦听HTTP。
API(应用程序编程接口(:您的软件的所有客户端必须遵守的接口才能使用它。例如,在我们的web服务中,我们可以指定API,因此请求遵循某些约定。
让我们现在把它全部放在一起。
你正在制作一个想要计算两个数字之和的网站。首先,用户将转到http://yoursite.com
,然后浏览器将始终对端口80上的域yoursite.com
执行HTTP请求。这将影响您的托管网站或某个后端服务器。
如果你使用GitHub页面之类的东西来提供静态内容,或者你有一些服务器(即serverd(来加载文件并提供它,你可以在这里选择。
因此,现在web浏览器执行HTTP请求,您的网页应该加载index.html
。用户现在可以点击按钮,在按下Calculate
之前一切看起来都很好——现在发生了什么?
我们希望将计算卸载到后端。我们向后端服务器执行HTTP请求。我们可以定义一个API,在我们的情况下是一个端点,这样HTTP请求就可以命中它,它将返回两个数字的总和。
我们如何返回结果?我们需要以某种方式表示数据,这可以通过编码为JSON或XML的主体负载来实现。同样,这是一种序列化格式,可以用各种不同的方式对其进行编码。JSON非常好,因为您可以在客户端使用JavaScript轻松地解析它。
太棒了——所以现在我们有了一个完整的网站,它很有效!现在,我们可以根据设置端点从浏览器直接向后端发出HTTP请求,它应该可以满足我们的请求。请注意,现在我们是如何在我们的站点中使用后端服务器上的API的。
你可能会遇到其他关键词:CORS、AJAX、Apache Server;祝你好运