您现在的位置是:焦点 >>正文
tomcat是web服务器吗
焦点3276人已围观
简介Tomcat是web服务器吗?直接回答:是,但它远不止是web服务器。更准确地说,它是一个Servlet容器,只是顺带把静态文件也给你伺候了。这俩概念经常被搅浑,得掰扯清楚。 你去下载一个Tomcat ...
Tomcat是web服务器吗?直接回答:是,但它远不止是web服务器。更准确地说,它是一个Servlet容器,只是顺带把静态文件也给你伺候了。这俩概念经常被搅浑,得掰扯清楚。
你去下载一个Tomcat,解压,扔进webapps一个HTML文件,启动,浏览器访问,能看见页面。这时候它干的就是纯web服务器的活儿——处理HTTP请求,返回静态资源。Apache httpd、Nginx干的也是这个。但你要是扔进去一个Servlet类或者JSP,Tomcat就不只是传文件了,它会帮你创建对象、管理生命周期、调用service方法、处理并发线程。这一步,普通web服务器做不了,它们只会把请求原封不动地转给后端程序,自己当个快递员。Tomcat不一样,它自己就是那个拆包裹、看说明书、动手组装的人。
我见过不少人把Tomcat和Apache混着说,其实早期很多项目是Apache在前,Tomcat在后,Apache处理静态文件,动态请求通过mod_jk或mod_proxy转发给Tomcat。后来Tomcat自己也把静态处理能力提上来了,小项目直接单跑Tomcat完全够用。但你要是做个图片站,几万张图让Tomcat慢慢吐,那性能就拉胯了,它毕竟不是为高并发静态内容设计的。这时候前面架个Nginx,静态的让Nginx来,动态的再反代给Tomcat,才是正经玩法。
Tomcat的“web服务器”身份,更像是它作为Servlet容器的副产物。你把它当web服务器用,能跑;你把它当应用服务器用,也行——它支持JNDI、JMX、数据库连接池这些企业级特性。但它没实现EJB全套规范,所以严格说它不是完整意义的Java EE应用服务器,像GlassFish、WildFly那种才算。轻量级是它的优势,也是它的边界。
有个细节能看出它的定位:Tomcat的启动脚本是catalina.sh,catalina是美国加州圣卡塔利娜岛的名字,据说是因为Tomcat的创始人喜欢那地方。这名字跟“服务器”没半点关系,倒像是给一个容器起的。它内部的核心组件是Catalina(Servlet容器)和Jasper(JSP引擎),一个管动态逻辑,一个管页面编译,静态资源处理反而是后加的。
所以下次有人问你这问题,你可以这么答:Tomcat是web服务器,但它是那种“顺便干干web服务器活”的容器。你拿它当个文件服务器使,有点大材小用;你拿它跑Servlet,它才真正舒展开。选型的时候别纠结它算哪类,就看你的请求是动态还是静态,动态多,Tomcat自己扛没问题;静态多,让专业的上。
Tags:
上一篇:男子破解彩票中奖公式
下一篇:用户名枚举漏洞怎么解决
相关文章
易语言扫描
焦点易语言这东西,圈内人戏称“中文编程”,圈外人多半嗤之以鼻。可我偏要说,它的扫描功能,藏着国产软件最野性也最实用的一面。 我最早接触易语言扫描,是在一个老式论坛里。有人发了个帖子,说要批量扫描局域网里的 ...
【焦点】
阅读更多破解网络赌博软件
焦点我花了三个月,拆解过市面上流通的十七款所谓“棋牌娱乐”App。结论很简单:没有任何一款是真正随机的。它们的核心代码里,藏着一个叫“动态赔付率”的模块。这个模块不决定你能否赢,它只决定你赢多少、输多少、 ...
【焦点】
阅读更多适合部署svn的公网服务器
焦点适合部署SVN的公网服务器 三年前我帮一个外包团队迁移版本库,他们用的阿里云最低配ECS,1核1G,跑着SVN加Apache,二十来人同时提交代码,居然没崩过。这事儿让我重新掂量了SVN对服务器的胃 ...
【焦点】
阅读更多