CS 공부

웹 서버(Web Server)와 웹 애플리케이션 서버(WAS)

호_두씨 2024. 2. 22. 16:01

들어가기 전에

Static pages

- image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미한다.

- 웹 서버에서 요청에 알맞은 파일을 반환하며, 항상 동일한 페이지를 반환한다. (말 그대로 정적인 컨텐츠)

- 웹 서버에서 제공한다.

 

Dynamic pages

- 들어온 요청에 맞게 동적으로 만들어진 컨텐츠를 의미한다.

- 데이터베이스, 서버 내 로직 등을 활용해 만들어진 컨텐츠를 반환한다.

- 웹 어플리케이션 서버에서 제공한다.

 

 

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

Web Server

HTTP 요청을 받아 Static contents를 제공하는 서버 (Ex. Apache Server, Nignx, ...)

 

기능 1: 정적인 컨텐츠 제공 

  • WAS를 거치지 않고, 바로 요청한 컨텐츠를 제공할 수 있다.

기능 2: 동적인 컨텐츠 제공을 위한 요청 전달

  • 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달한다.

 

 

WAS(Web Application Server)

 

다양한 서버 내 알고리즘, 비즈니스 로직, DB 조회 등 클라이언트 요청에 따라 동적인 컨텐츠를 제공하는 서버(Ex. Tomcat, JBoss, Jeus, ...)

 

WAS가 Web Server의 모든 기능을 수행하면 되는 것 아닌가? Web Server는 왜 사용하는가?

기능을 분리하여 서버 부하를 방지한다.

- WAS는 DB 조회, 다양한 로직을 수행하기라 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트한테 제공하는 것이 좋다.

- 정적 컨텐츠 요청까지 WAS에서 수행하게 되면 부하가 커지게 되고, 동적 컨텐츠 처리가 지연됨에 따라 수행속도가 느려진다.

 

물리적으로 분리하여 보안을 강화시킨다.

- SSL 대한 암복호화 처리에 Web Server를 사용

 

여러 대의 WAS를 연결해 로드 밸런싱 용도로 사용할 수 있다.

- Fail over, Fail back 처리에 유리하다.

- 대용량 웹 어플리케이션의 경우, Web Server와 WAS를 분리하여 오류가 발생한 WAS를 사용하지 않고, 다른 WAS를 사용하게 만듦으로써 무중단 운영을 가능하게 한다.

 

여러 언어의 웹 어플리케이션 서비스가 가능하다.

- 하나의 서버에서 PHP Application, Java Application를 함께 사용하는 등과 같이 여러 웹 어플리케이션의 활용이 가능해진다.

- 톰캣은 Java언어만 해석이 가능하다. JSP 같은 경우, 처리가 가능하지만 PHP는 실행이 불가능하다. 고로, Web server로 아파치를 사용해 PHP를 사용할 수 있게 만들 수 있다.

 

 

결론적으로, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server, WAS를 각기 사용한다.

 

참고

https://binux.tistory.com/32

 

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

"웹 서버와 웹 어플리케이션 서버의 차이를 아시나요?" 이번 면접의 질문이었다. 서버공부를 한지 오래되지 않은 나로서 매우 기본적인 백엔드 개발자 면접 질문임에도 답할 수 없었다. 면접이

binux.tistory.com