从我在 Internet 上阅读的所有内容中,我设法了解有两种类型的服务器:静态和动态。静态服务器包括支持 HTTP 和 URL 的“硬件服务器”和“软件服务器”。动态服务器包含包含静态 + 应用程序服务器和数据库的所有内容。所有信息都来自这里。
也就是说,实际上,由于应用程序服务器的操作,动态服务器被称为动态服务器,它可以动态更改通过 HTTP 传输的文件。
我有个问题。事实证明,应用程序服务器是某种允许您处理文件的代码。但从这句话来看,这并不完全正确(代码不太可能包含 Web 服务器):
应用程序服务器可以包含 Web 服务器,这就是为什么它被认为比 Web 服务器更强大的原因。
在这里,我很可能不了解这个应用程序服务器的结构或结构。为什么以及如何包含此 Web 服务器?
另外,这句话不清楚:
应用程序服务器充当一组组件,通过平台本身定义的 API(应用程序编程接口)可供软件开发人员使用。
事实证明,如果 API 支持 2 个程序的交互,那么在这种情况下,API 可以支持应用服务器与任何其他程序的交互。API 是否始终支持与应用程序服务器一起使用,API 是否仅与应用程序服务器一起使用?
我将冒险回答这个问题,尽管这很可能不是一个完整和完整的答案。
在我看来,您的误解来自大量的术语及其“历史分层”
您所说的“静态和动态服务器”,我认为通常称为“静态内容”和“动态内容”。
文中所谓的应用服务器应该简单地理解为“没有枪口的网络服务器”,不管它听起来多么粗鲁。这是一个通过 HTTP 接受请求并通过 HTTP 响应的程序。这通常称为 REST - 协议(Representational state transfer)
“应用程序服务器”的另一个常用术语是“Web 服务”。
“应用服务器”一词本身就是一种历史外壳。
让我解释一下我的想法。在 WEB 诞生的阶段,编写带有超链接的文件并将其发送到马赛克等原始浏览器的能力对于每个人来说通常已经足够了。
但我想要“动态”,例如页面上访问者数量的计数器。为此,使用了CGI(通用网关接口)。
实际上,这意味着响应来自浏览器的请求,将在服务器上执行一个程序,并将其执行结果显示在浏览器中。
为了“卖得好”这个功能(而且 Web 服务器不仅是免费开源的,而且有时收费很高,比如Microsoft IIS和IBM WebSphere ),创造了营销术语“应用程序服务器” 。
这意味着,响应用户请求,执行一些可以响应该请求的代码的能力不多也不少。这就是服务器的不同之处,它只能“愚蠢地托管文件”
此外——通过 API,人们可能应该理解“根据预先商定的协议进行交互”,但对于 HTTP 服务器,在 99% 的情况下,这应该被理解为 REST API。
这是什么?
我会用一个例子来解释。让我有一个包含有价值信息的数据库。
我可以制作一个 Web 服务器,在其页面上显示有关用户请求的这些信息。
而且我可以为我的数据库提供一个接口,互联网上的许多服务器将开始在他们的页面上显示这些信息,并转向我来获取信息本身。通过 API。同时,我可能根本没有“具有供访问者查看的页面的网络服务器”。
我希望我能够 - 在这个简短的回答中 - 帮助您理解这些术语。但是,如果您有明确的问题 - 写!
添加
我重新阅读了您的问题,并决定在这部分的答案中添加一些内容:
我会尽量用“手指上”来说明是什么意思。为此,让我们看一下所有这些服务器的总体结构。
有一个实现 HTTP 协议的程序。它只知道如何接收 HTTP 请求,并且它有一个尝试响应该请求的模块。
通常,这个程序只是简单地“附加”到WEB服务器的文件系统上,“响应模块”按照以下算法工作:匹配请求。响应请求,如果不匹配 - 显示第 404 个错误的页面”。这就是所谓的“静态内容”或“静态服务器”(好像这个词没有让我抽搐)
什么是“动态服务器”?这是在为请求提供服务的程序中的“响应模块”被教授另一个技巧的时候:“......但是如果某个类型的请求出现在您面前,那么不要将文件提供给用户,而是执行该程序并给用户它的执行结果。”
正是在这个意义上“应用程序服务器可以包含 Web 服务器”——它们的意思是,为了接收请求并发送响应,您需要一个使用 HTTP 协议的模块,他们称之为“Web 服务器”。从这个意义上说,“动态服务器”将在其组成中包含“网络服务器”。
什么/谁是“服务器”?
英语:serve - 服务;+er --> server - 服务的人。
简单来说,“服务器”是服务(执行)请求的东西。表演者。
执行者(服务器)是应用程序。但是,同样的“词”也指运行此应用程序的硬件。是的,多个应用程序(服务器)可以在同一硬件(服务器)上运行。
祖父一次没有从“IT”翻译,现在这些是问题。
进一步了解祖父的遗产。
“静,静”
英语(adj):静态——一动不动。
“动态、动态等发电机——”
英语(adj):动态——表演、工作、活着。
“网络”
英语:web - web,网络。
我们将所有东西都连接到堆上。
Web服务器是一个执行器,它处理根据一定的规则(协议)(英文:protocol)创建的网络请求:TCP/IP、HTTP等。
Application- Server——运行应用程序的执行器。
静态服务器- 一个执行器,它也是一个Web 服务器,它的任务是发布它已经拥有的某些数据。那些。引用它时,它不会创建任何新内容。例如,他有一组图像,所以在访问它时,他只会发出这些图像。
动态服务器是一个执行器,可能是也可能不是网络服务器,但无论如何都是应用程序服务器。如果你可以通过网络与它通信,那么这就是一个网络服务器,如果它的任务,例如,只是计算素数,那么不需要网络。
好吧,关于应用程序执行程序API的几句话。
例如,让我们以自运营商(英语:auto- (self-); mobile (mobile))为例。它有一个变速杆。所以这个杠杆的有效位置是API,即 换档的方法,由自载体的开发人员提供,以满足这些需求。
在视觉上,齿轮位置可以描述如下:
对于应用程序执行者来说,一切都是一样的。访问时有一组位置(位置)(如果需要,还有附加数据),这个或那个动作将由这个应用程序执行。例如:
创建注释:/createArticle、/create-article、/createNote、/note-create(名称的选择完全取决于应用程序开发人员)。