Spring Boot
웹서버가 도대체 무엇인가(웹서버와 WAS의 차이)
김지훈_
2021. 5. 3. 22:46
Web Server
- 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 프로그램
- Ex) Apache HTTP Server
-> WAS를 거치지 않고 바로 자원을 제공한다. 동적인 컨텐츠가 필요할 경우 WAS에 요청을 전달한다.
WAS
- 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- Ex) Apache Tomcat
->HTTP를 통해 애플리케이션을 수행해주는 미들웨어 (Web Container 혹은 Servlet Container)라고도 불린다.
*실제 동적 처리를 하는 것은 Servlet이고 WAS는 Servlet들은 관리하는 컨테이너
Web Server와 WAS의 분리
결론 : Web Server와 WAS의 분리된 사용을 통한 자원 이용의 효율화
- Web Server
- 클라이언트에 이미지와 같은 정적인 파일을 보낼 때, 보내진 HTML 문서에 따라 필요한 이미지만 보낸다.
- 이러한 파일을 Web Server에 저장해 놓으면 필요시 WAS를 거치지 않아도 되기 때문에 서버의 부담이 덜하다.
- WAS
- WAS가 존재하지 않는다면 클라이언트에서 필요한 결과값을 모두 미리 만들어 놓고 수행해야 한다.
- 이는 자원의 한계상 불가능하다.
- WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 로직에 맞게 동적으로 결과를 만들어서 제공해야 한다.
WAS는 DB 조회 및 로직 처리로 인해 이미 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트에 넘겨주는 것이 효율적이다.