Web容器是什么?

在学习之前,我们想想什么是 Web 容器,以及怎么学习 Web 容器。在学习一门技术之前,想想这两个问题,可以达到事半功倍的效果。

让我们回顾一下web技术的发展历史,可以帮助你理解web容器的由来。

早期的web应用主要应用于浏览静态网页,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。

随着互联网发展,我们已不满足于仅仅浏览静态网页,还希望通过一些交互操作来获取动态结果,因此也就需要一些扩展机制能够让Http服务器调用服务端程序。

于是Sun公司推出了Servlet容器。可以把servlet简单理解为运行在服务端的java小程序,但是servlet没有main方法,不能独立运行,因此必须把它部署到serlet容器,由容器来实例化并调用servlet。

而Tomcat和jetty就是一个Servlet容器。为了方便使用,他们也具有Http协议服务器的功能,因此Tomcat或jetty就是“HTTP服务器+Servlet容器”,我们也叫它Web容器。

其他应用服务器比如JBoss和WebLogic,他们不仅有servlet容器的功能,也包含EJB容器,是完整的javaEE应用服务器,从这个角度看,Tomcat和jetty算是轻量级的应用服务器。

在微服务架构日渐流行的今天,开发人员比较喜欢稳定的、轻量级的应用服务器,并且应用服务器用内嵌的方式来内嵌的方式运行servlet容易也逐渐流行起来。

为什么选择轻量级的服务

在微服务架构下,我们把一个大而全的单体应用,拆分成一个个功能单一的微服务,在这个过程中,服务的数量必然增加,为了减少资源的消耗,并降低部署的成本,我们也希望运行部署的web容器也是轻量级的,web容器本身应该消耗较少的内存和CPU资源,并且由应用本身来启动一个嵌入式的web容器,而不是通过web容器来部署和启动应用,这样可以降低应用部署的复杂度。

因此轻量级的Tomcat和jetty就是一个很好的选择,并且Tomcat它本身也是Springboot默认的嵌入式Servlet容器。最新版本Tomcat和jetty也支持Servlet4.0。

Web容器怎么学

学习Java Web容器之前需要学习一些计算机基础知识:

  • 操作系统基础 java语言其实是对操作系统API的封装,上层应用包括web容器都是通过操作系统工作的,因此掌握相关的操作系统原理是我们深刻理解web容器的基础。

对于web容器来说,操作系统方面应该掌握它的工作原理,比如什么是进程、什么是内核、什么是内核空间和用户空间、进程间通信的方式、进程和线程的区别、线程同步的方式、什么是虚拟内存、内存分配的过程,什么是I/O,什么是I/O模型、阻塞与非阻塞的区别、同步与异步的区别、网络通信的原理、OSI七层网络模型以及TCP/IP、UDP和Http协议。 ,比如什么是进程、什么是内核、什么是内核空间和用户空间、进程...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值