VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动
荫云优惠活动

Web 服务器、应用程序服务器和 HTTP 服务器之间有什么区别?这篇文章详细解析服务器之间的区别

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

WEB服务器、应用服务器和HTTP服务器有什么区别?IIS、ApacheTomcat、Weblogic、WebSphere 属于哪种服务器?这些问题纠结了很久,今天终于整理出来了:

网络服务器的基本功能是提供网络信息浏览服务。它只需要支持 HTTP 协议、HTML 文档格式和 URL。配合客户的网页浏览器。因为Web服务器支持的主要协议是HTTP,所以HTTP服务器和WEB服务器通常是等价的(有没有支持HTTP以外协议的Web服务器,笔者没有验证过),是一回事。

应用服务器(简称应用服务器),我们来看看微软对它的定义:“我们将应用服务器定义为”作为服务器执行共享业务应用的底层系统软件。”就像文件服务器提供了很多用户一样文件,应用服务器允许多个用户同时使用应用程序(通常是客户创建的应用程序)”

通俗地说,Web 服务器提供页面以便浏览器可以浏览,但应用服务器提供客户端应用程序可以调用的方法。准确地说,您可以说:Web 服务器专门处理 HTTP 请求,而应用程序服务器通过许多协议为应用程序提供业务逻辑。

以Java EE为例,Web服务器主要处理静态页面,充当Servlet容器,解释和执行servlet/JSP,而应用服务器运行业务逻辑,主要是EJB、JNDI、JMX API等J2EE API。包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能要比WEB服务器提供的功能强大很多。

有了这个定义,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。

Web 服务器、应用程序服务器和 HTTP 服务器之间有什么区别?这篇文章详细解析服务器之间的区别-主机参考

阿帕奇

在Web服务器中,Apache是​​纯Web服务器,经常与Tomcat配对。它对 HTML 页面具有强大的解释能力,但无法解释页面中嵌入的服务器端脚本代码(JSP/Servlet)。

雄猫

早期的Tomcat是Apache+Tomcat内嵌的JSP/Servlet解释引擎,相当于IIS+ASP。后来Tomcat不再嵌入Apache,Tomcat进程独立于Apache进程运行。而且Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和接口交互层代码是可以分离的。因此,有人称Tomcat为轻量级应用服务器。

信息系统

微软早期的 IIS 是一个纯 Web 服务器。后来,它嵌入了 ASP 引擎,可以解释 VBScript 和 JScript 服务器端代码。这时,它可以兼作应用服务器。当然,它是J2EE应用服务器无法比拟的,但从功能和原理上来说,它几乎不能称为应用服务器。准确的说是一个带有一点应用服务器功能的web服务器。

总之:

Apache是​​纯Web服务器,Tomcat和IIS可以称为轻量级应用服务器或具有服务器功能的Web服务器,因为它们具有解释和执行服务器端代码的能力。因为Weblogic和WebSphere能够提供强大的J2EE功能,无疑是绝对的应用服务器。对于中位的Tomcat,可以和纯web服务器Apache一起使用,也可以和应用服务器一起部署,作为应用服务器的辅助:

一、Tomcat 和应用服务器

到目前为止,Tomcat 一直被视为 Servlet/JSP API 的执行者,即所谓的 Servlet 容器。然而,Tomcat不仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat 仍然不是应用服务器,因为它不提供对大多数 J2EE API 的支持。

很有意思的是,目前很多应用服务器通常都使用Tomcat作为它们的Servlet和JSP API容器。因为 Tomcat 允许开发人员通过添加一行感谢来将 Tomcat 嵌入到他们的应用程序中。不幸的是,许多商业应用服务器并没有遵循这个规则。

对于开发者来说,如果您正在寻找使用Servlet、JSP、JNDI和JMX技术生成Java Web应用程序,选择Tomcat是一个很好的解决方案;但是为了找到对其他J2EE API的支持,然后寻找应用服务器或使用Tomcat作为应用服务器的辅助将是一个很好的解决方案;第三种方式是找到独立的J2EE API实现,然后与Tomcat结合使用。虽然整合会带来相关的问题,但这种方式是最有效的。.

二、Tomcat 和 Web 服务器

Tomcat 提供了一个支持 Servlet 和 JSP 操作的容器。Servlet 和 JSP 可以根据实时需要生成动态网页内容。对于web服务器,Apache只支持静态网页,对动态网页无能为力;Tomcat 可以同时为动态网页和静态网页提供服务。虽然速度不如一般的web服务器快,功能也没有web服务器丰富,但是Tomcat已经逐渐扩展到支持静态内容了。大多数Web服务器都是用C等低级语言编写的,并利用了相应平台的特性。因此,纯Java编写的Tomcat的执行速度无法与它们相提并论。

一般来说,大型站点是Tomcat和Apache的结合。Apache 负责接受来自客户端的所有 HTTP 请求,然后将 Servlet 和 JSP 请求转发给 Tomcat 进行处理。Tomcat 完成处理后,将响应发送回 Apache,最后 Apache 将响应返回给客户端。

并且为了提高性能,一个apache可以连接多个tomcat来实现负载均衡。

WEB服务器和应用服务器更详细的区别可以参考以下文章:

通俗地说,Web 服务器提供页面以便浏览器可以浏览,但应用服务器提供客户端应用程序可以调用的方法。准确地说,您可以说:Web 服务器专门处理 HTTP 请求,而应用程序服务器通过许多协议为应用程序提供业务逻辑。

下面我们来详细说一下:

网络服务器

Web 服务器可以处理 HTTP 协议。当 Web 服务器收到 HTTP 请求时,它会返回一个 HTTP 响应(响应),例如一个 HTML 页面。为了处理一个请求(request),Web服务器可以响应一个静态页面或图片,进行页面重定向,或者将动态响应的生成委托给其他一些程序,如CGI Scripts、JSP(JavaServer Pages)脚本、servlets 、ASP(Active Server Pages)脚本、服务器端 JavaScript 或其他一些服务器端技术。不管它们(译者注:脚本)的目的是什么,这些服务器端程序通常都会生成一个HTML响应(response)供浏览器浏览。

您知道,Web 服务器的委托模型非常简单。当一个请求(request)被发送到Web服务器时,它只是将请求(request)传递给一个可以处理该请求的程序(译者注:服务器端脚本)。Web 服务器只提供了一个可以执行服务器端程序并返回响应(由程序生成)的环境,而没有超出其功能范围。服务器端程序通常具有事务处理、数据库连接和消息传递等功能。

尽管 Web 服务器不支持事务处理或数据库连接池,但它可以采用各种策略来实现容错和可扩展性,例如负载平衡和缓冲。(缓存)。集群特性(clustering-features)经常被误认为是特定于应用服务器的特性。

应用服务器

根据我们的定义,作为应用服务器,它通过包括 HTTP 在内的各种协议向客户端应用程序公开业务逻辑。Web 服务器主要处理将 HTML 发送到浏览器进行浏览,而应用服务器则为客户端应用程序提供对业务逻辑的访问。应用程序使用此业务逻辑就像调用对象的方法(或过程语言中的函数)。

应用服务器的客户端(包括图形用户界面(GUI))可以运行在PC、Web服务器甚至其他应用服务器上。应用服务器与其客户端之间来回传递的信息不限于简单的显示标记。相反,该信息是程序逻辑。正是因为这个逻辑采用数据和方法调用的形式,而不是静态的 HTML,客户端可以随心所欲地使用这个暴露的业务逻辑。

大多数情况下,应用服务器通过组件应用程序接口(API)暴露业务逻辑(给客户端应用),比如基于J2EE(Java 2 Platform, Enterprise Edition)的应用程序服务器的EJB(Enterprise JavaBean)组件模型. 此外,应用程序服务器可以管理自己的资源,例如包括安全、事务处理、资源池和消息传递在内的看门职责。就像Web 服务器一样,应用服务器配备了多种可扩展性和容错技术。

一个例子

例如,想象一个提供实时定价和可用性信息的在线商店(网站)。本站很可能会提供表格供您选择产品。当您提交查询时,网站将执行查找并返回嵌入在 HTML 页面中的结果。一个网站有很多方法可以实现这个功能。我想介绍一个不使用应用服务器的场景和一个使用应用服务器的场景。观察这两种场景之间的差异将有助于您了解应用程序服务器的功能。

场景一:没有应用服务器的Web服务器

在这种情况下,Web 服务器独立提供在线商店的功能。Web 服务器获取您的请求,然后将其发送到可以处理该请求的服务器端程序。该程序从数据库或文本文件(平面文件,译者注:平面文件是指没有特殊格式的非二进制文件,如属性和XML文件等)中搜索价格信息。一旦找到,服务器端程序将结果信息以 HTML 形式表达,最后 Web 服务器将其发送到您的 Web 浏览器。

简而言之,Web 服务器只是响应 HTML 页面以处理 HTTP 请求。

场景 2:带有应用服务器的 Web 服务器

场景2与场景1相同,Web服务器仍将响应的生成委托给脚本(译者注:服务器端程序)。但是,您可以将用于查找定价的业务逻辑放在应用程序服务器上。由于这种变化,这个脚本只是调用了应用服务器的查找服务,而不是已经知道如何查找数据然后将其表达为响应。这时,当脚本程序生成HTML响应(response)时,就可以使用服务的返回结果了。

在这种情况下,应用服务器为查询产品定价信息的业务逻辑提供服务。(服务器的)此功能不指定有关显示的详细信息以及客户端如何使用此信息。相反,客户端和应用程序服务器只是来回传输数据。当客户端调用应用服务器的查找服务时,该服务只是简单地查找并将结果返回给客户端。

通过将其与生成响应的 HTML 代码分开,定价(查找)逻辑在应用程序中更可重用。其他客户,例如收银机,也可以调用与店员相同的服务来结账客户。相比之下,场景 1 中的定价查找服务不可重用,因为信息嵌入在 HTML 页面中。

总而言之,在场景 2 模型中,Web 服务器通过响应 HTML 页面来处理 HTTP 请求,而应用程序服务器通过处理定价和可用性请求(请求)来提供应用程序逻辑。

警告(注意事项)

现在,XML Web Services 混淆了应用服务器和 Web 服务器之间的界限。通过向服务器发送 XML 有效负载(payload),Web 服务器现在可以像以前的应用程序服务器一样处理数据和响应(响应)。

此外,现在大多数应用服务器都包含Web 服务器,这意味着Web 服务器可以被视为应用服务器的一个子集。应用服务器虽然包含了Web服务器的功能,但是开发者很少将应用服务器部署到这个容量上(译者注:这个功能既指应用服务器的功能,也指Web服务器的功能)。相反,如果需要,他们通常会独立配置 Web 服务器,与应用服务器一个接一个地配置。这种功能分离有助于提高性能(简单的Web请求(request)不会影响应用服务器)、单独配置(专用Web服务器、集群(clustering)等),并给最好的产品选择留有余地。

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:Web 服务器、应用程序服务器和 HTTP 服务器之间有什么区别?这篇文章详细解析服务器之间的区别 https://zhujicankao.com/65721.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » Web 服务器、应用程序服务器和 HTTP 服务器之间有什么区别?这篇文章详细解析服务器之间的区别
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

相关推荐

评论 抢沙发

评论前必须登录!