Web服务器、HTTP服务器及应用服务器的区别?

参考:https://blog.csdn.net/qq_36544360/article/details/81078426

web服务器它只需支持HTTP协议、HTML文档格式及URL。其主要功能是传送页面使浏览器可以浏览,又因为它主要支持HTTP协议,所以通常情况下web服务器和HTTP服务器是相等的。通俗讲web服务器就是专门用来处理HTTP请求的

应用服务器主要的功能就是为客户端应用程序提供可调用的方法(应用程序提供(serves)商业逻辑);

Apache、Nginx、IIS、Tomcat都属于Web服务器,JBoss、Weblogic、WebSphere都属于应用服务器。

Tomcat因为具有了解释和执行服务器端代码的能力,可以称作为轻量级应用服务器

Tomcat与Web服务器

 Tomcat是一个支持Servlet和JSP技术的容器。Web服务器Apache、Nginx仅仅支持静态网页,对于支持动态网页就会显得无能为力,而Tomcat(Servlet和JSP能根据实时需要产生动态网页)既能为动态网页服务,又能为静态网页提供支持。尽管Tomcat没有通常的Web服务器快(通常的Web服务器都是用底层语言(如C/C++)编写,而Tomcat用纯Java编写)、功能也不如通常的Web服务器丰富,但是其正在不断的改进和完善。

一般来说,大型网站都是将Tomcat与Apache/Nginx结合Apache/Nginx负责接受来自客户端的HTTP请求,然后将HTTP请求转发给Tomcat来处理

为了提高性能,可以将一台Apache/Nginx连接多台tomcat实现负载均衡

Tomcat与应用服务器

目前,Tomcat一直被认为是Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供J2EE API的其他大多数支持。

目前许多的应用服务器通常把Tomcat作为它们Servlet容器。

对于开发者来说,如果是为了寻找Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找其他的J2EE API的支持,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用,虽然整合会带来相关的问题,但是这种方式是最为有效的。

Tomcat和Nginx

nginx是web服务器,只支持静态网页,一般用来传递静态的页面给客户端。常用做静态内容服务和代理服务器;代理服务器:一般nginx将客户端的请求转发给后面的应用服务器(tomcat,django什么的),应用服务器执行应用后,将动态的内容转化为静态的内容后,再通过web服务器(nginx)传送给客户端。

应用服务器,则是一个应用执行的容器。它首先需要支持开发语言的 Runtime(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。

猜你喜欢

转载自blog.csdn.net/zhangpower1993/article/details/88902029