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
'Spring Boot' 카테고리의 다른 글
Spring Boot - Gradle (0) | 2023.03.29 |
---|---|
로컬 파일(이미지) 프론트로 내보내는 REST API (0) | 2021.05.20 |
비밀번호 해시 암호화 (0) | 2021.05.10 |
DB에 이미지 저장 (0) | 2021.05.02 |