Web服务器、Web容器、Application服务器、反向代理服务器的区别与联系

在Web开发中,经常会听到Web服务器(Web Server)、Web容器(Web Container)、应用服务器(Application Server)、反向代理服务器(Reverse Proxy Server)等容易混淆且不好理解名词。在面试中,这也是经常被问到的。本文介绍对四者的理解、区别与联系。

一、Web服务器(Web Server)

1. Web Server 或者叫 HTTP Server ,Web服务器的基本功能就是提供Web信息浏览服务、接受客户端的请求以及响应、处理Http请求,也可以将请求转发至其他服务器。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的。

2. 常见的Web Server

Apache、Jetty、IIS、JBoss

3. 下图是2017全球范围内哪种Web Server使用最多的排行榜(数据来自:SimilarTech

二、Web容器(Web Container)

1.  随着Web服务器朝着企业级应用方向发展,快速的业务变化,迫使Web开发人员面对新的挑战:如何快速写出鲁棒,可靠,符合业务需求的程序并顺利部署?解决这个挑战的一个有效的办法是,创造一个Web程序开发框架(含运行环境,比如解释执行JSP,Web API),这个框架解决鲁棒性,可靠性问题,提供快速开发接口。换言之,开发人员只需要专注于实现业务本身,如有更高的需求还可以对框架进行定制和扩展。这个框架的另外一个名字是Web应用程序容器。满足一定条件的web服务器就是web容器,是web服务器或应用与服务器的一部分。

2. 常见的Web Container

Tomcat、IIS、Jetty

Web容器本身具备了做为一个Web服务器的功能,事实上通常实现Web容器功能的服务器就是一个Web服务器.比如Tomcat , IIS ,Jetty。

三、应用服务器(Application Server)

1. 大多数Application Serve都将Web Server和Web Container作为其不可分割的一部分,这意味着应用服务器可以做任何Web服务器所能做的事情。此外,应用服务器有组件和特性来支持应用级服务,如连接池、对象池、事务支持、消息传递服务等。

web服务器越来越成熟,可以处理更高的负载、更多的并发和拥有更好的特性;应用服务器开始添加越来越多的基于HTTP的通信功能。所有的这些导致了web服务器与应用服务器的界线变得更窄了。

目前,“应用服务器”和“web服务器”之间的界线已经变得模糊不清了。但是人们还把这两个术语区分开来,作为强调使用。

当有人说到“web服务器”时,你通常要把它认为是以HTTP为核心、web UI为向导的应用。当有人说到“应用服务器”时,你可能想到“高负载、企业级特性、事务和队列、多通道通信(HTTP和更多的协议)”。但现在提供这些需求的基本上都是同一个产品

从上图中可以看到Web应用服务器包括了Web容器,同时内置了支撑企业应用的事务,安全,集成,通信,高可用等等功能,极大了减少了重复开发量,保障了业务系统快速开发和部署,而它本身也是一个Web服务器。Web应用服务器可以选择使用大厂的WebLogic和WebSphere这种重量级产品外,也可以使用类似与Tomcat、jetty这样的web containner 再加上第三方的框架(spring,hibernate等)来构建自己的Application Server;.NET Core平台下可以选择IIS, Apache,Nginx 与ASP.NET Core构建。

2. 常见的Application Serve

WebLogic、WebSphere、Jetty

3. 下图是2017不同Application Serve的市场占有率(数据来自:Plumbr

四、反向代理服务器(Reverse Proxy Server)

1.  反向代理是代理服务器的一种。它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端。与前向代理不同,前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端(如Web服务器)作为代理使用,而不是客户端。客户端通过前向代理可以访问很多不同的资源,而反向代理是很多客户端都通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。

2. 反向代理的主要作用为:

  • 加密和SSL加速
  • 负载均衡
  • 缓存静态内容
  • 压缩
  • 减速上传
  • 安全防火墙
  • 外网发布
  • 突破互联网封锁
  • 解决跨域问题

3. 常用反向代理服务器

Ngnix,IIS,Apache



总结:

从概念上讲:

(1)Web服务器是提供WWW服务的程序;

(2)Web容器是提供给开发者的框架;

(3)Web应用程序服务器内容丰富得多,既可用各厂商通常遵循一定的工业标准并自定义扩展功能而成,也可以利用开源组件轻量级拼装打造;

(4)反向代理服务器在企业级应用中表现突出,具有解决集中式安全,负载均衡等等优点。

如今这四个概念的边界越来模糊,看看这个表就知道了:

关于Kerstrel是否web容器,有两种观点:

1. 由于Kerstrel不提供编写应用的框架,所以它不是容器;asp.net core才是容器,因为它提供了开发应用的框架并提供web应用(MVC,Web API)运行环境。

2. Kerstrel提供了运行环境。



参考:

https://www.cnblogs.com/vipyoumay/archive/2017/08/31/7455431.html

http://www.cnblogs.com/vipyoumay/p/5853694.html

原文地址:https://www.cnblogs.com/huiAlex/p/8303830.html

时间: 2024-12-14 18:05:39

Web服务器、Web容器、Application服务器、反向代理服务器的区别与联系的相关文章

代理服务器与反向代理服务器的区别

说到代理服务器,大部分人都应该比较熟悉了.记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站.但是提到反向代理服务器可能大部分人就比较陌生,对于一般的代理服务器与反向代理服务器的区别估计也不是那么清楚. 因工作需要就研究了一下,搞清了是怎么回事,这里做个笔记,也为大家所共享. 代理服务器通常分为两类,即转发代理(forward proxy)服务器和反向代理(reverse proxy)服务器.转发代理服务器又通常简称为代理服务器,我们常提到的代理服务器就指的是转发代理服

代理服务器和反向代理服务器的区别

说到代理服务器,大部分人都应该比较熟悉了.记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站.但是提到反向代理服务器可能大部分人就比较陌生,对于一般的代理服务器与反向代理服务器的区别估计也不是那么清楚. 因工作需要就研究了一下,搞清了是怎么回事,这里做个笔记,也为大家所共享. 代理服务器通常分为两类,即转发代理(forward proxy)服务器和反向代理(reverse proxy)服务器.转发代理服务器又通常简称为代理服务器,我们常提到的代理服务器就指的是转发代理服

正向代理服务器和反向代理服务器的区别

正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理. 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置.客户端向反向代理的名字空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就

你的服务器安全么?--服务器防渗透(1)

服务器防渗透(1)--信息收集 你的服务器安全么? 1   概述 在本人所处的公司的服务器正式遭到黑客攻击之前,一直都以为 黑客 是个遥不可及的词,直到真正成为了受害者时,才猛然意识到安全的重要性.有一些基本经验和心得总结出来,和同行分享一下吧. 2   暴破手段 最粗暴的黑客行为,就是利用计算机对比人的逆天的计算能力,来暴力破解.一般的服务器都是不提供交互界面的,而且为了能够方便和其它程序进行自动化连接和集成,也是不会设置图灵测试验证码的,所以基于这种条件,服务器天然具备暴破的条件. 主要的暴

反向代理服务器(Reverse Proxy)

普通代理服务器是帮助内部网络的计算机访问外部网络.通常,代理服务器同时连接内网和外网.首先内网的计算机需要设置代理服务器地址和端口,然后将HTTP请求发送到代理服务器,最后由代理服务器转发. 而反向代理服务器是帮助外网计算机访问内网服务.外网计算机不需要进行配置,直接按照域名或者IP地址访问反向代理服务器,然后代理服务器请求内网的服务器,获取响应的数据,然后再发送给计算机.对于外网计算机来说,反向代理服务器像是一个Web服务器.但实际上,反向代理服务器不存放对应的资源.通过反向代理服务器,可以保

正向代理和反向代理的区别

正向代理 一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端.客户端才能使用正向代理. 正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径.正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率. 使用ProxyRequests指令即可激活正向代理.因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,

反向代理服务的区别

我们常见的代理服务有Squid.Apache.Nginx. 反向代理服务器的区别在于传输方式: 同步传输:Squid.Apache 异步传输:Nginx 同步传输和异步传输: 角色:A=浏览器.B=反向代理服务器.C=WEB服务器 同步传输:A请求页面,B立即响应请求,从C上面接收页面数据并实时返回给A.在这个过程中A-C是实时同步传输的. 异步传输:A请求页面,B不会立即处理请求,它会等待从C上面完全接收到页面数据时,才会将页面数据全部返回给A.在这个过程中A-C是非实时传输的,则为异步. 同

web服务器、应用服务器、web容器、反向代理服务器区别与联系

我们知道,不同肤色的人外貌差别很大,而双胞胎的辨识很难.有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎,在网络上经常一起出现.本文将带读者对这四个相似概念如何区分. 1. 一文看懂web服务器.应用服务器.web容器.反向代理服务器区别与联系 1.1. Web服务器概念与基本原理 1.1.1. Web服务器的历史 1.1.2. Web服务器工作原理 1.2. Web应用程序容器概念与基本原理 1.2.1. Web应用程序容器的由来 1.2.2. Web应用程序容器

如何搭建web服务器 使用Nginx搭建反向代理服务器

转载   如何搭建web服务器 使用Nginx搭建反向代理服务器 :   http://blog.csdn.net/w13770269691/article/details/6977727 引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火 墙.但我们要知道,IDC机房是肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个IDC网络 瘫痪.我们都知道北方的数据中心和南方的数据中心从带宽出