Web Server와 WAS 구분하기

kimwoody·2021년 10월 13일
0

Java Web Programming

목록 보기
1/4

Web Server와 WAS

웹 서버(Web Server)와 WAS(Web Application Server)의 차이는 뭘까?
웹을 공부하다보면 웹 서버와 WAS 두 가지 단어를 많이 보게 된다. 나도 요즘 Java로 웹 프로그래밍을 공부하는 중인데 이 두 개념의 정확한 차이를 몰랐다. 이번 기회에 블로그에 웹 서버와 WAS에 대해서 정리해 보려고 한다.

웹 서버(Web Server)란?


위의 그림을 보면 이해 하기 쉽다.
브라우저가 요청하면 HTML을 준다! 근데 조금 자세히 말하면
웹 서버는 웹 브라우저로부터 HTTP 요청(request) 을 받아 HTML 같은 정적 컨텐츠를 제공(HTTP response) 하는 프로그램이다.

모르는 개념이 하나 더 나왔다. 그럼 여기서 정적 컨텐츠는 무엇일까?

정적 컨텐츠

  • 있는 그대로의 컨텐츠
  • 어떤 사용자의 요청이든 항상 동일한 컨텐츠

그럼 웹 서버의 기능을 정리해 보겠다.

웹 서버의 기능

  • 브라우저로부터 HTTP 요청을 받을 수 있다.
  • 브라우저가 HTTP 요청을 하면 정적 컨텐츠를 제공할 수 있다.

근데 여기서 궁금한 게 한가지 생긴다. 정적 컨텐츠가 있으면 동적 컨텐츠는 없나?
당연히 있다. 웹 서버는 정적 컨텐츠 뿐만 아니라 동적 컨텐츠도 제공을 해주어야 한다. 그래서 웹 서버의 기능을 한 개 더 추가해야 한다.

  • 동적 컨텐츠 요청시 웹 컨테이너로 전달하여 웹 컨테이너가 처리한 결과를 클라이언트에게 전달

동적 컨텐츠를 제공해줄때 웹 컨테이너(Web Container) 라는 친구가 필요한데, 웹 서버(Web Server)와 웹 컨테이너(Web Container)를 합친 것이 바로 WAS(Web Application Server)이다.

그럼 이제 WAS에 대해 알아보자.

WAS란?


그림을 보면 위에서 알아본 웹 서버와 웹 컨테이너가 합쳐진 프로그램이다.
그리고 사용자의 요청에 따라서 DB 조회를 하거나 다양한 로직을 처리하고 클라이언트에게 동적인 컨텐츠를 제공하는 프로그램이다.

여기서는 모르는 개념이 두 개가 나왔다. 웹 컨테이너와 동적 컨텐츠는 무엇일까?

웹 컨테이너

웹 컨테이너와 관련된 개념이나 역할은 엄청 많은것 같은데, 저는 Java로 웹을 공부하는 학생 입장에서 간단하게 정리해보겠습니다.

  • 웹 서버에서 JSP를 요청한다.
  • 웹 컨테이너는 JSP 파일을 서블릿을 변환하고 컴파일한다.
  • 컴파일 한 결과를 웹 서버에 전달한다.

동적 컨텐츠

  • 요청 인자에 따라 바뀔 수 있는 컨텐츠

그럼 WAS의 기능을 정리해 보겠다.

WAS의 기능

  • 브라우저로부터 HTTP 요청을 받을 수 있다.
  • 브라우저가 정적 컨텐츠를 요청하면 정적 컨텐츠를 제공할 수 있다.
  • 브라우저가 동적 컨텐츠를 요청하면 웹 컨테이너를 통해 DB 조회나 다양한 로직 처리를 통해서 동적 컨텐츠를 제공할 수 있다.

마무리

이 포스팅을 시작으로 Java Web Programming에 관한 포스팅을 지속적으로 이어갈 수 있으면 좋겠다.

0개의 댓글