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에서 빠르게 클라이언트에 넘겨주는 것이 효율적이다.

 

References

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

'Spring Boot' 카테고리의 다른 글

Spring Boot - Gradle  (0) 2023.03.29
로컬 파일(이미지) 프론트로 내보내는 REST API  (0) 2021.05.20
비밀번호 해시 암호화  (0) 2021.05.10
DB에 이미지 저장  (0) 2021.05.02

+ Recent posts