应用程序服务器如何与Http服务器交互

时间:2013-11-15 12:10:54

标签: java servlets application-server httpserver grizzly

我已经使用Tomcat和Jetty很长一段时间了。据我所知。应用程序服务器(Servlet容器)是servlet的容器​​。而http服务器处理Http请求和响应。但是我一直觉得这两者是如何起作用的。

有人可以给我一个关于Http Server和Application Server如何工作的高级概述吗?因为我在读书Grizzly它是一个NIO服务器。它是HTTP服务器吗?还是应用程序服务器?

1 个答案:

答案 0 :(得分:3)

HTTP服务器是一个主要涉及处理HTTP请求和向客户端提供HTTP响应的组件。当然,还有HTTP服务器的其他功能,例如,请求转发,错误处理等,但对于更高级别的视图,它足以理解HTTP服务器实现请求/响应机制。它与任何编程语言实现无关。

Servlet容器是实现Java的Servlet规范的组件。 Servlet主要使用Java语言实现。它们就像HTTP服务器,它们处理请求和响应(请注意,与HTTP请求和响应相比,这些请求和响应是更高的抽象),过滤它们,链接它们等等。

在大多数情况下,servlet容器放在HTTP服务器后面。 HTTP服务器将HTTP请求(取决于某些URL映射规则)转发到servlet容器。在servlet中实现高度抽象的请求/响应规范之一是HTTP请求/响应。通过这种方式,HTTP服务器和servlet容器可以一起工作以提供例如HTTP对话的HTTP对话。动态网页。

应用程序服务器是一个更复杂的组件(通常,它封装了HTTP服务器和servlet容器(如果它是面向Java的应用程序服务器))。这样的组件提供了实现某些给定规范的模块,例如,由JBoss Applciation Server / WildFly实现的Java EE规范。