프로그래밍/WEB

[Web/용어정리] 웹 서버, 웹 컨테이너, 웹 어플리케이션 서버의 차이

후르트링 2021. 10. 24. 17:45
728x90

웹 백엔드(서버) 공부를 시작하게 되면 만나는 세가지 용어

  • 웹 서버(Web Server)
  • 웹 컨테이너(Web container)
  • 웹 어플리케이션 서버(Web application Server)

각각의 정의 및 특징에 대하여 알아보도록 하겠습니다.

[웹 서버(Web Server)]

"요청을 받아 Client에게 전달"

웹 서버는 Client 요청이 올때까지 기다리다가, 요청이 오면 요청에 대한 데이터를 전송을 해주는 역할을 하고 있습니다.

간단히 설명하면 크롬과 같은 웹 브라우저에서 네이버의 url인 www.naver.com 을 입력하면 웹 서버에서 요청을 받아 웹 브라우저에게 요청 한 파일을 전달해 줍니다.

이 때에 웹 서버는 이미 가지고 있는 html 파일이나 리소스 등 정적인 페이지만을 전송 할 수 있습니다.

 

웹 서버는 HTTP 프로토콜을 이용하여 클라이언트(웹 브라우저)의 요청을 받아 html 문서나 오브젝트를 전송합니다.

 

종류로는 아파치(Apache), IIS, Nginx 등이 있습니다.

 

[웹 컨테이너(Web container)]

"동적인 처리를 하는 곳"

웹 컨테이너는 JSP나 Servlet이 실행 할 수 있는 프로그램으로 서블릿 컨테이너(Servlet Container)라고도 합니다.

JSP와 Servlet은 웹 서버가 입력 받은 정보를 통해 동적인 데이터를 처리하여 정적인 페이지를 생성해줍니다.

예를 들어 웹 사이트에 로그인을 하게되면 회원마다 다른 정보를 보여주어야 됩니다.

웹 서버는 정적인 페이지만 보낼 수 있기 때문에 컨테이너가 웹 서버로 부터 정보를 받아 동적 페이지를 생성하여 웹 서버에게 전달해 줍니다.

 

[웹 어플리케이션 서버(Web application Server)]

웹 어플리케이션 서버(was)는 웹 서버(Web Server) + 웹 컨테이너(Web Container)를 결합한 서버를 의미합니다.

HTML 같은 정적인 페이지에서 처리할 수 없는 비지니스 로직, DB 조회 같은 동적인 컨텐츠를 제공합니다.

종류로는 톰캣이 있습니다.

 

 

[차이점]

  • 웹 서버는 정적인 html, 리소스 등만을 처리할 수 있습니다.
  • 웹 어플리케이션 서버는 동적 데이터를 처리할 수 있습니다.
  • 두개를 같이 사용할 수도 있습니다. 그럴때는 정적처리는 웹서버에서, 동적 처리는 WAS에서 나눠서 처리합니다.
    • 이렇게 기능을 분리하게 되면 서버 부하를 막을 수 있습니다.
    • 물리적인 분리를 통하여 보안을 강화 할 수 있습니다.