首页 > 编程语言 >WEB服务器、应用程序服务器、HTTP服务器有何区别?

WEB服务器、应用程序服务器、HTTP服务器有何区别?

时间:2023-12-25 14:36:30浏览次数:35  
标签:Web HTTP Tomcat WEB 应用程序 Apache 服务器 应用服务器


WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:


    Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。 


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


  通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。


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


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


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


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



IIS:微软早期的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请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。


  而且为了提高性能,可以一台apache连接多台tomcat实现负载平衡。 


  关于WEB服务器、应用程序服务器的更详细区别可以参考下面这篇文章: 


   通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。


标签:Web,HTTP,Tomcat,WEB,应用程序,Apache,服务器,应用服务器
From: https://blog.51cto.com/u_16469394/8968015

相关文章

  • 北亚服务器数据恢复-机房断电导致raid模块损坏,服务器数据丢失的数据恢复案例
    服务器数据恢复环境:服务器有一组由12块硬盘组建的raid5阵列。服务器故障&分析:机房供电不稳导致服务器意外断电,工作人员重启服务器后发现服务器无法正常使用。根据故障情况,北亚企安数据恢复工程师初步判断服务器故障原因是意外断电导致的raid模块损坏,经过详细检测发现是异常断电......
  • error: failed to push some refs to 'http://192.168.1.37:1080/nongzi/nongzi-apple
    当你直接在github上在线修改了代码,或者是直接向某个库中添加文件,但是没有对本地库同步,接着你想push上传到远程库,就会失败,  这个问题是因为远程库与本地库不一致造成的,那么我们把远程库同步到本地库就可以了先把自己代码暂存,然后再拉取更新,然后提交代码 也可参考 http......
  • CA证书服务器搭建
    演示环境SERVER2019准备一:域服务器搭建  略。。。步骤一:添加角色和功能--添加AD证书服务--一直下一步完成安装步骤二:直接点击安装完成界面上的配置目标服务器上的ActiveDirectory证书服务即可注释:此项选择哈希算法不推荐选择SHA1、MD5存在弱算法漏洞步骤三:此时CA证书服务......
  • 阿贝云免费云服务器体验
    今天体现了下阿贝云的免费云服务器。首先登录阿贝云的官网 https://www.abeiyun.com 注册账号好,实名认证后,就可以领取云服务器了。可以看到,配置是1核1G,10G硬盘,5MBGP带宽。简单测试下带宽,看是否是BGP线路,跑个测速脚本。 国内网三测速,上行符合标称值,延迟基本在50ms以内,抖......
  • 运维工程师面试题整理(挂载windows下的共享目录 查看http的并发请求数 tcpdump嗅探80端
    1.linux如何挂载windows下的共享目录mount.cifs//192.168.1.3/server/mnt/server-ouser=administrator,pass=123456linux下的server需要自己手动建一个,后面的user与pass是windows主机的账号和密码,注意空格和逗号2.查看http的并发请求数与其TCP连接状态netstat-n|awk'/^......
  • 【已解决-实操篇】SaTokenException: 非Web上下文无法获取Request问题解决-实操篇
    在上一篇《【理论篇】SaTokenException:非Web上下文无法获取Request问题解决-理论篇》中,凯哥(凯哥Java)介绍了产生这个问题的源码在哪里,以及怎么解决的方案。没有给出实际操作步骤。本文,凯哥就通过threadLocal方案来解决。一、创建用于存放共享变量的对象代码如下:packagecom.kai......
  • Web.Config文件详解
    一).Web.Config是以XML文件规范存储,配置文件分为以下格式    1.配置节处理程序声明      特点:位于配置文件的顶部,包含在<configSections>标志中。    2.特定应用程序配置      特点:  位于<appSetting>中。可以定义应用程序的全局常量设置等信息.    ......
  • 服务器OS安装
     1服务器硬件信息ProLiantDL380Gen10Plus内存:32G*16(512G)cup:Intel(R)Xeon(R)[email protected]*2    28/28 cores; 56 threads存储:1.92TSSD*8 raid62.系统信息规划1.服务器命名szpmoap022.文件系统规划挂载点大小/boot1G/boot/efi500M/200G/u01300Gs......
  • ffmpng 对rtmp服务器 推流做压力测试
    使用ffmpeg-python对rtmp服务器做压力测试FFmpeg下载:https://github.com/BtbN/FFmpeg-Builds/releasesffmpeg-master-latest-win64-gpl.zip #!/usr/bin/envpython3#-*-coding:utf-8-*-#@mail:[email protected]#@Time:2023/12/2316:05#@Auth......
  • 解决网络协议服务器问题的关键:定位能力与抓包技术
    本文分享自华为云社区《提升网络协议服务器的定位能力》,作者:张俭。近期,我再次涉足于协议服务器相关的工作领域,致力于定位并解决各种问题。简单总结一些心得给大家。如果想要定位出协议服务器的问题,那么这些能力可能至关重要。注:我这里比较偏向协议本身的问题,不涉及一些通用的网......