服务器能干什么,服务器的作用介绍( 二 )


主流Web服务器
Apache、IIS和Nginx的市场份额如下:
Tomcat,Jetty,WebSphere,WebLogic,Kerstrel等等也是广泛使用的 。
Web应用容器的概念和基本原理
Web应用程序容器的来源
Web服务器的出现标志着WWW时代的到来,世界变得更加扁平 。当初尝到甜头的先行者并不满足于在互联网上获取静态资源,于是出现了CGI脚本来动态获取资源 。
后来网络发展的方向是增强Web服务器动态获取资源的能力 。以下是代表性的动态技术:
web应用容器的基本工作原理
通常,Web应用程序容器由以下系统组成:
注意:浅蓝色模块是用于实现业务程序的主要模块 。
与Web服务器相比,容器增加或加强了以下模块:
分配线程池资源,容器为每个请求分配一个线程进行处理,通常采取线程池的方式高效率由 CPU 算资源 。封装 Request 上下文,一个请求对应一个 Request 上下文,它主要封装了用户请求的主要构成 。URL、HTTP请求头,以及基于请求头构建的Session、Cookie等对象,方便编程 。
封装 Response 上下文,一个请求对应一个 Response 上下文,主要用于向用户代理返回资源 。可以在其中写入输出流,或者重定向,或者返回错误码等等 。URL 路由,在容器里,运行开发人员设置不同的路由匹配规则,比如让 .HTM 返回 .HTML,也可以自定义 .xyz 返回 .HTML 资源 。更加灵活的配置可以参考 Java MVC 或者 ASP.NET MVC 的配置方案 。动态资源处理模块,通常在这里具体的容器和开发语言都有自己的高效开发模型,比如 Java 的 Servlet,ASP.NET 的 Web Form,MVC 。回收资源,这里会回收刚才的线程资源,为了线程复用,除非服务器空闲一般会将线程返回线程池 。可以看出,Web容器本身具有作为Web服务器的功能 。实际上,通常实现Web容器功能的服务器是Web服务器 。比如Tomcat,IIS,Jetty 。
主流Web容器
包括Tomcat、IIS、Jetty 。WebSphere、WebLogic等 。也被广泛使用 。
Web应用服务器的概念和基本原理
在Web服务器发展的同时,应用服务器也长期存在和发展 。
一些公司为Unix开发了Tuxedo(面向事务的中间件)、TopEnd、Encina和其他产品,这些产品都是从IMS和CICS这样的主机应用程序管理和监控环境中派生出来的 。
这些产品中的大多数都指定了一个“封闭的”特定于产品的通信协议来互连胖客户端和服务器 。
到了90年代,这些传统的应用服务器产品开始嵌入HTTP通信功能,起初要使用网关来实现 。很快他们之间的界限开始模糊 。
与此同时,Web服务器也越来越成熟,可以处理更高的负载、更多的并发和更好的功能 。应用服务器开始增加越来越多的基于HTTP的通信功能 。所有这些都导致了Web服务器和应用服务器之间界限的缩小 。
目前,“应用服务器”和“Web服务器”的界限已经变得模糊 。但人们也区分这两个术语以示强调 。
当有人说“Web服务器”时,你通常会认为它是一个以HTTP为核心,以Web UI为向导的应用程序 。
当有人谈到“应用服务器”时,你可能会想到“高负载、企业级特性、事务和队列、多渠道通信(HTTP和更多协议)” 。但是现在基本上同样的产品提供了这些需求 。
下图描述了一个典型的Web应用服务器的结构图:
从上图可以看出,Web应用服务器包括Web容器,内置了事务、安全、集成、通信、高可用等功能 。支持企业应用程序 。
它大大减少了重复开发的量,保证了业务系统的快速开发和部署,同时它还是一个Web服务器 。
Web应用服务器可以选择使用大厂商的WebLogic、WebSphere等重量级产品 。
你也可以使用像Tomcat和Jetty这样的Web Containner加上第三方框架(Spring、Hibernate等) 。)来构建自己的应用服务器;在下面 。NET核心平台,可以选择IIS、Apache、Nginx和ASP.NET核心来构建 。
反向代理的概念和基本原理
反向代理的基本概念
【服务器能干什么,服务器的作用介绍】反向代理是代理服务器的一种 。它根据客户端的请求,从后端服务器(比如Web服务器)获取资源,然后将这些资源返回给客户端 。
与正向代理不同,正向代理作为一种媒介,将在互联网上获得的资源返回给相关联的客户端,而反向代理用作服务器端(如Web服务器)的代理,而不是客户端 。
客户端可以通过正向代理访问很多不同的资源,而反向代理是指很多客户端通过它访问不同后端服务器上的资源,不知道这些后端服务器的存在,以为所有的资源都来自这个反向代理服务器 。


推荐阅读