웹 서버, WAS의 차이 (스프링의 톰캣에 대해 알아보자!)

zooju·2022년 11월 1일
1

WS, WAS (톰캣을 알아보자)

스프링 부트 → 내장 톰캣을 가짐

웹서버

  • Client → Web Server : HTTP request
  • Web Server → Client : HTTP response
  • 정적인 데이터(static data)만 취급
  • 예시: Apache HTTP Server, Nginx

웹 어플리케이션 서버(WAS)

  • 웹 서버가 정적인 데이터만 볼 수 있음 → 유동적인 로직에 대응하기 힘듦 → 이를 극복하여 동적인 데이터를 반환할 수 있도록 만든 것이 WAS WS는 jsp같은 파일을 이해할 수 없음.
  • 로직은 Spring 같은 경우 java로 이루어져 있음(예시: .jsp 파일)
    • jsp: HTML 코드에 java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구
  • 웹 서버가 클라이언트에게 요청을 받을 때, jsp처럼 자신이 이해할 수 없는 파일 요청이 오면 톰캣에게 제어권을 넘긴다. 톰캣은 jsp 파일에 있는 모든 자바 코드를 컴파일하고, 컴파일이 끝나면 그 데이터를 html에 덮어 씌운 후 아파치에게 전달해준다. 아파치는 Html 파일을 클라이언트에게 전달한다.

💡 웹 브라우저가 .jsp 파일 요청 
→ 아파치: 톰캣에게 넘김 
→ 톰캣: Jps 자바를 컴파일하고 html로 만들어줌 
→ 아파치는 html을 웹 브라우저에게 전달해줌 
→ 웹브라우저는 html 파일을 클라이언트에게 보여줌. 
  • 톰캣 WAS: 서블릿 컨테이너 역할
    • 서블릿 컨테이너: HTTP 요청을 받아 웹 페이지를 동적으로 생성하는 역할
    • 컨테이너: 동적인 데이터를 받아 가공하여 정적인 파일(HTML)로 만드는 것
    • 서블릿: 클라이언트 요청을 받아 요청을 처리하고, 그 결과를 클라이언트에게 제공하는 자바 인터페이스
  • 아파치 톰캣이라고 부르는 이유: 아파치와 톰캣의 기능은 나뉘어 있지만, 톰캣 안의 컨테이너를 통해 일부 아파치의 기능을 발휘하기 때문에 보통 아파치 톰캣이라고 부름
  • Spring에선..
    • jar: tomcat 내장한 빌드 파일
    • war: tomcat 내장하지 않은 빌드 파일. 다른 WAS를 연결할 수 있음
💡 결론

WAS는 클라이언트가 동적인 로직이 포함된 파일을 요청하면, 동
적 파일을  컴파일하고 HTML로 만들어, 
클라이언트에게 제공함.

참고

velog

profile
이것 저것 새로운 분야에 관심이 많은 서버 개발자

0개의 댓글