本人学习过nginx,tomcat服务器,也听说过apache,jboss等服务器
但从来没有想过他们是属于什么类型的服务器,然后在一些大牛的讲解下,才有了一些眉目~
先贴一段大佬对web服务器和应用服务器区别的描述:
【严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容。而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。
比如Web服务器包括Nginx,Apache,IIS等。而应用服务器包括WebLogic,JBoss等。应用服务器一般也支持HTTP协议,因此界限没这么清晰。但是应用服务器的HTTP协议部分仅仅是支持,一般不会做特别优化,所以很少有见Tomcat直接暴露给外面,而是和Nginx、Apache等配合,只让Tomcat处理JSP和Servlet部分】
比如Web服务器包括Nginx,Apache,IIS等。而应用服务器包括WebLogic,JBoss等。应用服务器一般也支持HTTP协议,因此界限没这么清晰。但是应用服务器的HTTP协议部分仅仅是支持,一般不会做特别优化,所以很少有见Tomcat直接暴露给外面,而是和Nginx、Apache等配合,只让Tomcat处理JSP和Servlet部分】
通过大佬的讲述,我才明白为什么tomcat在实际项目里是作为应用服务器来部署项目;用nginx来作Web服务器,而不是用他直接处理和分发用户请求。
tomcat实际上属于应用服务器,但刚开始学习JavaWeb的时候,会把他当做Web服务器来使用,是因为tomcat内置了轻量级web服务器,能够处理http请求,但人家在这方面不是做的很好的,只是能够满足基本的http协议操作,因此实际场景并不会被用来当做Web服务器