2013-11-15 2 views
3

저는 Tomcat과 Jetty를 오랫동안 사용해 왔습니다. 내가 아는 바로는. 응용 프로그램 서버 (Servlet Container)는 서블릿의 컨테이너입니다. http 서버는 HTTP 요청 및 응답을 처리합니다. 그러나 항상이 둘이 어떻게 작동하는지 추상적으로 생각합니다.응용 프로그램 서버가 Http 서버와 상호 작용하는 방법

누군가가 저에게 Http Server 및 Application Server의 작동 방식에 대한 높은 수준의 개요를 제공 할 수 있습니까? 내가 독서했기 때문에. Grizzly이며 NIO 서버입니다. 그래서 그것은 HTTP 서버입니까? 또는 응용 프로그램 서버?

+0

위대한 답변은 http://www.theserverside.com/feature/Understanding-How-the-Application-Servers-Web-Container-Works에서 찾을 수 있습니다. * Web Server에서 Application Server * 섹션으로. –

답변

3

HTTP 서버은 주로 HTTP 요청 처리 및 클라이언트에 HTTP 응답 제공과 관련된 구성 요소입니다. 물론 HTTP 서버와 같은 다른 기능이 있습니다. HTTP 서버가 요청/응답 메커니즘을 구현한다는 것을 이해하는 것으로 충분하다. 프로그래밍 언어 구현과 관련이 없습니다.

서블릿 컨테이너은 Java의 서블릿 사양을 구현하는 구성 요소입니다. 서블릿은 주로 Java 언어를 사용하여 구현됩니다. 그들은 요청과 응답을 처리한다는 점에서 HTTP 서버와 흡사합니다 (HTTP 요청과 응답에 비해 이러한 요청과 응답이 더 높은 추상성을 가짐), 필터링하고, 연결하는 등의 작업을 수행합니다.

대부분의 경우 서블릿 컨테이너는 HTTP 서버 뒤에 배치됩니다. HTTP 서버는 일부 URL 매핑 규칙에 따라 HTTP 요청을 서블릿 컨테이너로 전달합니다. 서블릿에서 고도로 추상화 된 요청/응답 스펙의 구현 중 하나는 HTTP 요청/응답입니다. 이러한 방식으로, HTTP 서버 및 서블릿 컨테이너는 예를 들어, 동적 웹 페이지.

응용 프로그램 서버은보다 복잡한 구성 요소입니다 (일반적으로 HTTP 서버와 서블릿 컨테이너 (Java 지향 응용 프로그램 서버 인 경우)를 모두 캡슐화 함). 이러한 구성 요소는 주어진 사양을 구현하는 모듈을 제공합니다. JBoss Applciation Server/WildFly에 의해 구현 된 Java EE 사양.

+0

그래서 Tomcat과 Jetty가 Application Server라고 추측하고 있습니까? – user962206

+0

Tomcat은 서블릿 컨테이너입니다. 서블릿 Java 스펙은 구현하지만 전체 Java Enterprise Edition 스택은 구현하지 않습니다. 또한 웹 서버를 포함합니다. Jetty에 대한 전문가의 세부 정보를 제공 할 수는 없지만 그들의 홈페이지 제목은 "Jetty - Servlet Engine and Http Server"입니다. –

+0

Http 서버없이 Servlet Container를 사용할 수 있습니까? – user962206