본문 바로가기
▶ Back-End/개념 요약

Tomcat 이란?

by 오늘도 코딩 2023. 8. 4.
728x90
반응형

동적인 웹을 만들기 위한 서블릿 컨테이너

*자세한 설명 생략

 

 

▷ Tomcat 이란?

 

    - Tomcat(WAS)은 Web Server(Apache)와 통신하여 JSP와 Servlet이 작동하는 환경을 제공

        *Tomcat은 내부 WebServer를 포함하여 독립적으로 사용 가능

 

    - Tomcat은 여러 Connector(HTTP/1.1", "AJP/1.3", SSL ...)와 Connector interface를 제공

        *HTTP/1.1 과 HTTP/2 Connector는 Tomcat이 독립적으로 동작하거나 다른 web server의 요청을 받아 WAS의 역할을 수행하도록 지원

        *AJP Connector는 Apache HTTP Web server의 요청을 처리하기 위한 특수한 Protocol을 처리

        *Tomcat 버전에 따라 각 Connector는 지원하는 Protocol(BIO, NIO, NOI2, APR, ...)을 선택하여 사용

 

 

▷ Tomcat 주요 구성 요소

 

    - Coyote (HTTP Component) : Tomcat에서 TCP를 통한 프로토콜 지원

 

    - Catalina (Servlet Container) : Java Servlet을 호스팅하는 환경(Tomcat의 Core Component)

 

    - Jasper (JSP Engine) : JSP 페이지의 요청을 처리하는 Servlet

 

 

▷ Tomcat 내부 구조

 

Tomcat은 Java Program으로 JVM에서 동작

 

   ① Server(Tomcat)가 요청 받음

   ② Engine(Catalina)이 요청에 맞는 Context를 찾음

   ③ Context는 deployment descriptor file(web.xml)을 기반으로 전달받은 요청을 Servlet에게 처리되도록 전달

        *즉, 클라이언트 HTTP request → Server(tomcat) Engine(Catalina) Context Servlet 클라이언트 response 순으로 처리


    *Server 하나에 여러 Service 사용 가능

    *Engine 하나에 여러 Host 사용 가능

    *Host 하나에 여러 Context 사용 가능

    *Service는 Catalina Servlet Container 전체이고, Service 하나에 1개의 Engine과 여러개의 Connector로 구성

    *Context는 하나의 Web Application이고,  주로 *.war 파일의 형태로 배포

 

 

▷ 참고

 

[tomcat] 동작원리

출처 : kchanguk.tistory.com/4 1. Tomcat의 설정($TOMCAT_HOME/conf/server.xml) * server.xml의 역할 TOMCAT의 메인 설정 파일이며 초기 설정을 명세하는 책임이 있습니다. 1) Server 최상위 element로, shutdown 요청 처리를

exhibitlove.tistory.com

 

Tomcat - (2) 구조

Tomcat의 구조에 대해 자세히 알아봅니다.

velog.io

 

 

▷ 관련 글

 

서블릿(Servlet) 이란?

서블릿의 기본 개념을 간단히 소개 *자세한 설명 생략 ▷ 서블릿(Servlet) 이란? - 클라이언트 요청을 처리하고, 그 결과를 반환하는 자바 웹 프로그래밍 기술 - Java로 구현된 CGI *CGI(Common Gateway Interf

coding-today.tistory.com

 

WebSocket vs Socket vs Socket I.O

간단한 개념 소개를 통해 어떻게 다른지 파악 *자세한 설명 생략 ▷ 소켓(Socket) 이란? *Socket 통신 : Server도 Client에게 요청을 보낼 수 있는 양방향 통신(연결유지) - 네트워크상에서 동작하는 프로

coding-today.tistory.com

 

 

728x90
728x90

'▶ Back-End > 개념 요약' 카테고리의 다른 글

Swagger 란?  (0) 2023.10.18
Cassandra 기본 개념  (0) 2023.08.10
Lombok이란?  (0) 2023.07.25
Docker 란?  (0) 2023.07.24
TDD, BDD, DDD란?  (0) 2023.07.23

댓글