目录

Web服务器

中间件

容器

总结

Web开发的选择


我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让我们通过http协议访问到。但是又有很多地方会说Tomcat是Servlet容器,而又有很多地方会说Tomcat是Web中间件!那么,他们到底是Web服务器还是容器,还是Web中间件呢???

怀着这个问题,我查遍了网上所有的资料,终于把这几个概念好好的整理了一下。

Web服务器

广义的web服务器(Web Server):提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、apache、nginx等。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。

所以,我们可以把 IIS、Apache、Nginx、Tomcat等都称为Web服务器,因为他们都提供了web服务。

中间件

中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器就是中间件的一种。

Web中间件就是提供web应用软件和系统软件连接的软件的一个总称。

我们来看看J2EE提出的背景:

1、企业级应用框架的需求:在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。

2、 为了通用必须要提出规范,不然无法达到通用:在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。

并且中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。

所以说我们可以把Tomcat、Weblogic、Jboss等叫做Web中间件。

相关文章:Web中间件

容器

容器:容器是中间件的一种,作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。例如:tomcat(servlet容器),Jboss(EJB容器)。这些容器提供的接口严格遵守J2EE规范中的web application 标准。

web容器:我们把遵守J2EE规范标准的web服务器就叫做J2EE中的web容器。处理 web服务的容器,例如tomcat(servlet容器),IIS(asp容器)。web容器用于给处于其中的应用程序组件(ASP、JSP)提供一个环境,是中间件的一个组成部分,它实现了对动态语言的解析。比如tomcat可以解析jsp,是因为其内部有一个servlet容器。

EJB容器(Enterprise java bean ):更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而 EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如servlet不用关心http的细 节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

所以说,我们也可以把 IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)等叫做Web容器

总结

通过上面的解释,不知道你有没有搞清楚这几者之间的区别!其实,对于这些名词,也并没有一个十分清楚的概念说这个就是属于这个,而不能属于那个。他们之间很多是包含关系。

web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

所以应该是  web服务器>web中间件>web容器

Web开发的选择

  • 一般本地开发的话,小项目,或者是个人开发建议的话,php使用apache、asp使用IIS、jsp使用tomcat
  • 大型的项目就用 jboss 或 webloigc
  • 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有 jboss、glasshfish 等

相关文章:Web中间件

web服务器、Web中间件和Web容器的区别相关推荐

  1. weblogic多次连接后tcp服务堵塞_一文看懂 Web服务器、应用服务器、Web容器、反......

    导读:我们知道,不同肤色的人外貌差别很大,而双胞胎的辨识很难.有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎,在网络上经常一起出现.本文将带读者对这四个相似概念如何区分 ...

  2. web服务器是什么?web服务器有哪些

    web服务器是什么? web服务器一般指网站服务器,也称为WWW服务器,是目前 Internet 上最重要的服务,它采用 C/S 结构web服务器的作用就是向浏览器等Web客户端提供文档,放置网站文件 ...

  3. 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷...

    错误提示: 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项:详述此特定请求 ...

  4. 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用

    错误提示: 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项: 详述此特定 ...

  5. 无法在WEB服务器上启动调试,Web 服务器配置不正确 解决

    无法在WEB服务器上启动调试,Web 服务器配置不正确 解决 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  6. centos+7虚拟机web服务器,CentOS7上搭建WEB服务器

    mysql 安装 直接yum install mysql-server是不可以的 1 wget http://repo.mysql.com/mysql-community-release-el7-5. ...

  7. 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。

    您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求.管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web ...

  8. asp.net配置IIS后服务器应用程序不可用的解决办法 服务器应用程序不可用 您试图在此Web服务器上访问的Web应用程序当前不可用。

    错误:服务器应用程序不可用  您试图在此Web服务器上访问的Web应用程序当前不可用. 请点击Web浏览器中的"刷新"按钮重试您的请求.管理员注意事项:详述此特定请求失败原因的错误 ...

  9. 服务器应用程序不可用,试图在此 Web 服务器上访问的 Web 应用程序当前不可用

    1.遇到这种情况请首先确认你的程序是否放在C盘下,如果是请放到其他盘.因为C盘一般是不允许访问的,所以会出现这种没有权限的情况.不过也可以改变文件夹的权限为everyone权限. 2.如果还未好,请再 ...

  10. WEB服务器和中间件

    一.WEB服务器 WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. WWW 采用的是浏览器/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软 ...

最新文章

  1. c语言怎样在不足n位数的整数前补0,C# String 前面不足位数补零的方法
  2. Cloudera Manager 常见异常
  3. linux执行命令时报错:permission denied
  4. 《Linux 性能及调优指南》1.6 了解Linux性能指标
  5. 使用代码获得document的related document 列表
  6. TM4C123核心板焊接须知
  7. webpack打包样式代码去重
  8. 一篇很好的面试文章 程序员面试IT公司的33个小贴士
  9. NTC热敏电阻温度计算
  10. 小米安卓java模拟器手机版_Android P(9.0) 行为变更完美适配WebView(小米手机也适用)...
  11. win10系统可以登录微信,但浏览器不能打开网页
  12. 为什么会有带www的域名和不带www的域名
  13. 网页中插入文本编辑器
  14. Unity 中实现 打击感的物理
  15. 防火墙互联网的几种接入方式
  16. win7系统同步服务器,win7自动同步服务器
  17. 计算机音乐雅俗共赏,“雅俗共赏”与音乐教育
  18. 马尔科夫蒙特卡罗方法
  19. 《谷歌大数据经典论文读后感》
  20. 人一个月瘦多少斤比较合适

热门文章

  1. A7799之STM32程序——STM32测试高精度ADC篇(二)
  2. 将时谐电磁场引入工程电磁场的意义_工程电磁场答案第八版
  3. cas之soo单点登录初步探究
  4. Windows文件系统中文件的储存原理、文件粉碎机的原理、数据恢复的原理
  5. [译]Windows 古僻汉字输入方法
  6. Oracle通过定时任务+dblink+存储过程传数据到中间库
  7. 微信聊天记录能恢复吗?值得试手的2个方法推荐
  8. iftop 监控端口流量状况
  9. 百度快照更新周期、百度收录更新时间
  10. 为淘宝的sdk模板安装java的JDK环境