1. 웹 서버(Web Server)

  • 정적인 컨텐츠(html, css, js)를 제공하는 서버이다.
  • 정적 콘텐츠란 단순 HTML, CSS, javascript, 이미지, 파일 등 즉시 응답가능한 컨텐츠

웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램

ex) 대표적 웹 서버 : Apache

2. WAS(Web Application Server)

  • 웹 서버와 웹 컨테이너가 합쳐진 형태로서, 웹 서버 단독으로는 처리할 수 없는 DB 조회와 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다.
  • 웹 컨테이너란 웹 서버가 보낸 JSP, Servlet 등의 파일을 실행시킬 수 있는 소프트웨어

    인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어로서, 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행

ex) 대표적 WAS : Tomcat

* 웹 서버와 WAS의 차이점

  • 어떤 타입의 컨텐츠를 제공하느냐의 차이이다.
  • 웹 서버와 WAS는 각각 독립적으로 존재할 수 있으며, 대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에, 웹 서버없이 존재할 수 있다.
    -> 그렇다면 왜 WAS만 사용하지 않고 웹 서버도 사용하는가?

* WAS만 단독으로 사용하지 않는 이유

1) WAS 업무의 부담을 줄이기 위해서
  • WAS 앞에 웹 서버를 두어 정적인 문서 처리만 하고, WAS는 어플리케이션의 로직만 수행하도록 기능을 분배하여 부담을 줄임
    -> 정적인 파일에 대한 요청은 Application Server까지 가지 않고 Web Server를 통해 빠르게 응답 가능
2) WAS의 환경설정 파일을 외부에 노출시키지 않도록 하기 위해서
  • 클라이언트와 연결하는 포트가 직접 WAS와 연결된다면 중요한 설정 파일들이 노출될 수 있으므로 앞단에 웹 서버를 배치한다.
    -> 웹 서버와 WAS에 접근하는 포트가 다르기 때문에, WAS에 들어오는 포트에 방화벽을 쳐서 보안 강화 가능