Web服务器包括硬件服务器和软件服务器。现在大部分硬件服务器都是以云的形式为用户提供服务。
Apache、nginx属于软件服务器,软件服务器是架设在服务端为Web应用提供系统级支撑服务,除了题目中提到的两个服务器,还有微软的IIS服务器也有比较多的应用,可以说是目前应用最为广泛的三大服务器。Apache和nginx属于软件服务器,设置在服务器端,为Web应用提供系统级的支持服务。除了题目中提到的两款服务器,微软的IIS服务器也是应用非常广泛的,可以说是目前应用最广泛的三款服务器。
下面描述Web服务器的用户请求处理过程(以CGI为例):
通常Web Server还要与数据库服务器联合使用。通常,Web服务器也与数据库服务器一起使用。
下面通过Java Web服务器来解释Web Server的作用,首先我们看一下Web Server在内部提供的服务:我们通过Java Web Server来解释一下Web Server的作用。首先,让我们看看Web Server内部提供的服务:
web包含httpd和Web容器,其中httpd服务器是apache对静态页面的响应服务器,而Web容器提供动态内容处理。为了解释Web容器的概念,我们来看看官方的定义:
只有两种官方定义:
协调servlet和httpd进程之间的交互。
实现servlet API的Java虚拟机。
第一点很好理解。如果是静态页面,则由httpd处理。如果是动态请求,它将被传递给Web容器进行处理。
第二点是理解Web容器的关键点,实现servlet API的Java虚拟机涵盖了很多内容。简单概括,可以包括以下内容:
1.1.web组件的配置和部署。
2.web组件的生命周期管理,对象的创建、操作和销毁。
3.服务组件之间的信息共享。
4.会话管理。
5.安全管理、异常处理等。
我们通过一个请求处理的时序图看一下Web Container的作用:让我们通过请求处理的序列图来看看Web容器的作用:
可以说Web容器是Web组件的运行支撑环境。Web组件的所有任务都在Web容器中完成,Web容器提供系统级的支持。用户的Web组件(如servlet)只需要专注于业务逻辑的实现,为开发者提供了极大的便利。
由于Linux在安全性上明显优于Windows和Unix,所以Web Server部署在Linux服务器上是很常见的。同时,Linux服务器的稳定性也很突出,所以一般大型Web服务都部署在Linux系统上。
关注我,了解更多Web开发知识。我是吴空问答的签约作者,致力于为百科用户提供科技问题的专业解答。