因此,我了解服务器有两种,第一种是Web服务器(或http服务器),例如nginx,apache,caddy,另一种是应用程序服务器,例如tomcat,undertow。我只是想知道Java应用服务器是否等于一般的Web服务器加上j2ee环境?又或者事情不是那么简单,除了混合Java环境外,应用服务器还做了很多事情?
答案 0 :(得分:1)
Http服务器仅实现Http
标准:这意味着接受Http request
并发送Http response
。
支持php和其他通过插件添加的语言(apache等)。
原始的Http服务器仅支持静态资源,而仅支持静态资源。
但是在Java EE世界中,Http服务器也必须实现Java EE规范。 Java EE是一组规范。
如果Http服务器实现了所有规范,我们将拥有application server
,例如 glassfish 。
如果Http服务器仅实现servlet和JSP规范,我们将提供servlet container
(通常也称为Web服务器),例如 apache tomcat (来自apache基金会。它不是apache web服务器。服务器),
任何与Java兼容的服务器都是原始的Http服务器,加上一些已实现的规范。
答案 1 :(得分:1)
作为一名经验丰富的Java开发人员,断言Tomcat与Web服务器和J2EE环境相同是令人讨厌的,因为在如何优化它们,它们在操作系统中所扮演的角色方面,有很重要的differences between Tomcat and Apache现代建筑,甚至它们的物理安装方式。
您可能是正确的...
话虽如此,您的主张实际上可能是正确的。从初学者(服务器端编程的新手)的角度来看,将Tomcat看作只是一台添加了许多神奇功能的Web服务器,即各种基于Java的API Java EE/Jakarta EE,这并不是完全错误的。内置其中。
实践中的Apache和Tomcat
Tomcat确实处理基于http的请求,并且它可以根据需要处理文件,因此可以承担双重责任。因此,从简单的角度来看,像这样思考Tomcat并非完全错误。只需记住,在现代体系结构中,Tomcat和Apache HTTP服务器的作用是非常不同的。
三层体系结构
这里是两个人如何在三层体系结构中共同发挥作用的视图: