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

最近在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等服务器,从功能来看,可以看做是一个应用服务器,而从角色来看,可以看做是一个容器。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值