Web 服务器与应用服务器,以及容器的区别

来源:xiaoxinwahaha 发布时间:2019-01-14 14:36:26 阅读量:1707

最近在web开发中,对Web 服务器与应用服务器,以及容器的概念一直含糊不清,在查阅了一些资料后,将个人的理解整理如下,如有偏颇,还请大家指正交流哈~


//---------------------------------------------------------------------------------------------------------------


首先,整理下服务器的概念:


 从硬件上来看:服务器就是一台PC机器,只不过配置比较高,如果你愿意,自己手头的笔记本也可以作为服务器来用。


 而从软件角度,根据用途来看,又可以分为:

web服务器:在PC机器安装web服务软件,提供web服务

数据库服务器:在PC机器安装了数据库软件,提供数据管理服务

邮件服务器:在PC机器上安装了可以收发邮件服务软件




//---------------------------------------------------------------------------------------------------------------


Web 服务器与应用服务器、以及容器的区别是什么?




web服务器


 在用户在浏览页面时,客户端(浏览器)和服务器之间的通信使用超文本传输协议(HTTP)进行,严格意义上讲,在这个过程中Web服务器只负责处理HTTP协议,其主要功能是存储,处理和传递页面给用户,但只能发送静态页面的内容(最常见的是HTML文档,除了文本内容之外,还可能包含图像,样式表和脚本)。常见的Web服务器包括Nginx,Apache,IIS等。而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。




应用服务器


 所谓的应用服务器,就是提供应用的服务器,WebLogic,JBoss、Tomcat等都属于应用服务器。然而如今的应用服务器,开始添加越来越多的基于HTTP的通信功能,因此与Web 服务器中间的界限也变得越来越模糊。但是应用服务器的HTTP协议部分仅仅是支持,一般不会做特别优化,所以很少有见Tomcat直接暴露给外面,而是和Nginx、Apache等Web服务器配合,只让Tomcat处理JSP和Servlet部分。


 PS:当与Nginx搭配使用时,Nginx同时作为负责均衡器,实现反向代理,解决大量用户同时访问产生的高负载问题。



容器


 在Java开发web应用的过程中,由于servlet没main()方法,需要交给另一个java应用才能运行,这个java应用称为容器(Container),Tomcat就是这样的容器,当Web服务器(Apache)得到一个指向servlet请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器。要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法。



 综上,Nginx等Web服务器专注于处理HTTP协议,传递静态页面内容;而Tomcat等服务器,从功能来看,可以看做是一个应用服务器,而从角色来看,可以看做是一个容器。

--------------------- 

作者:xiaoxinwahaha 

来源:CSDN 

原文:https://blog.csdn.net/xiaoxinwahaha/article/details/79173868 

版权声明:本文为博主原创文章,转载请附上博文链接!


标签: 服务器搭建
分享:
评论:
你还没有登录,请先