[Spring] 웹 서버, 웹 어플리케이션 서버

19·2022년 10월 25일
0

Spring

목록 보기
14/29

웹은 HTTP 기반으로 동작한다
웹 브라우저에서 URL을 치고 접속하면, 인터넷을 통해서 해당 URL 서버에 요청을 하고 응답을 받아 웹 브라우저가 그려준다.

이 때, 요청과 응답은 HTTP 프로토콜을 기반으로 동작한다.


웹 서버 (Web Server)

HTTP 기반으로 동작하며, HTTP 요청에 대한 응답을 정적 리소스(HTML, CSS, JS, 이미지등)로 제공하는 역할을 수행하는 서버이다.
EX) 아파치, NGINX


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

마찬가지로 HTTP 기반으로 동작하며 HTTP 요청에 대한 응답을 정적 리소스를 제공하는 역할은 웹 서버와 같지만, 추가로 프로그램 코드를 실행해서 어플리케이션 로직(DB 접속 등 DB 관련 처리, 비즈니스 로직 수행등)을 수행한 결과를 응답해주는 서버이다.

  • 동적 HTML, HTTP API(JSON)

서블릿, JSP, 스프링 MVC등으로 구현할 수 있다.
EX) 톰캣, Jetty, Undertow


아파치는 웹 서버, 톰캣은 웹 어플리케이션 서버


웹 어플리케이션 서버에서 웹 서버 역할도 수행하면 웹 어플리케이션 서버만 사용할까?

웹 서버의 기능을 웹 어플리케이션 서버도 제공하기 때문에, 웹 어플리케이션 서버만 사용할 것 같지만, 그렇지 않다.

정적 리소스는 웹 서버가 처리하고, 어플리케이션 로직과 같은 동적인 처리가 필요하면 WAS에 넘기는 식으로 둘 다 사용한다.
-> 서버 부하를 방지

상대적으로 웹 서버는 WAS, DB보다는 문제 발생빈도가 적기 때문에, WAS,DB 장애 시 웹 서버가 오류 화면을 제공하는 형태로 운용한다.

위와 같이 구성함으로써 리소스를 효율적으로 관리할 수 있다
정적 리소스가 많이 사용되면 WS 증설 / 애플리케이션 리소스가 많이 사용되면 WAS 증설



참고

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한

profile
하나씩 차근차근

0개의 댓글