Web容器是什么?

Web容器是什么?在学习之前 我们想想什么是 Web 容器 以及怎么学习 Web 容器 在学习一门技术之前 想想这两个问题 可以达到事半功倍的效果 让我们回顾一下 web 技术的发展历史 可以帮助你理解 web 容器的由来 早期的 web 应用主要应用于浏览静态网页 HTTP 服务器 比如 Apache Nginx 向浏览器返回静态 HTML 浏览器负责解析 HTML 将结果呈现给用户 随着互联网发展 我们已不满足于仅仅浏览静态网页 还希望通过一些交互操作来获取动态结果 因此也就需要一些扩展机制能够让 Http 服务器调用服务端程序

在学习之前,我们想想什么是 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协议。 ,比如什么是进程、什么是内核、什么是内核空间和用户空间、进程…

 

原文:https://blog.csdn.net/weixin_/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229009.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:40
下一篇 2026年3月16日 下午5:41


相关推荐

  • idea在线激活码(注册激活)「建议收藏」

    (idea在线激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    428
  • ELF文件介绍

    ELF文件介绍ELF 文件 大名叫 Executablean 作为一种文件 那么肯定就需要遵守一定的格式 从宏观上看 可以分成四个部分 图中的这几个概念 如果不明白的话也没关系 下面我会逐个说明的 在 Linux 系统中 一个 ELF 文件主要用来表示 3 种类型的文件 1 可执行文件 2 目标文件 3 共享文件既然可以用来表示 3 种类型的文件 那么在文件中 肯定有一个地方用来区分这 3 种情况 在我的头部内容中 就存在一个字段 用来表示

    2026年3月18日
    2
  • Oracle的表空间quota详解[通俗易懂]

    转载至:http://czmmiao.iteye.com/blog/1291984表空间quota概述Oracle官网对quota的定义如下:Alimitonaresource,suchasalimitontheamountofdatabasestorageusedbyadatabaseuser.Adatabaseadministra

    2022年4月7日
    66
  • rabbitmq集群部署详解_服务器集群与负载均衡

    rabbitmq集群部署详解_服务器集群与负载均衡如何搭建RabbitMQ集群?动手搭建RabbitMQ镜像队列集群!

    2025年10月20日
    3
  • JAVA map排序实现

    JAVA map排序实现Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sortbykey),按值排序(sortbyvalue)。1、按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法TreeMap(Comparator<?superK>comparator)传入我们自定义的比较器即可实…

    2022年7月15日
    20
  • Ubuntu常用命令汇总

    Ubuntu常用命令汇总Ubuntu 常用命令汇总

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号