본문 바로가기

이것저것 스터디📚/CS 스터디

웹 서버와 WAS(Web Application Server)

1. 웹 서버(Web Server)

- 웹 서버는 클라이언트(사용자)가 브라우저 주소창에 url을 입력하여 어떤 페이지를 요청하게 되면 http 요청을 받아들여 HTML 문서, CSS, 이미지, 파일 등과 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할을 한다.

- 웹 서버는 저장된 웹 리소스들을 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받아 저장하거나 처리한다.

- 만약 사용자로부터 동적인 요청이 들어왔을 때 해당 요청을 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에게 요청한다.

 

- 대표적인 웹 서버 종류 : Apache, Nginx 등

 

2. WAS(Web Application Server)

- WAS는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크다.

- 즉, DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 서버

- 웹 서버와 동일하게 HTTP 프로토콜을 기반으로 동작하며 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행된다.

- WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너라고도 불린다.

 

- 대표적인 WAS 종류 : Tomcat 등

 

3. 웹 서버와 WAS

- WAS는 웹 서버와 Web Container 역할을 모두 할 수 있다.

 

* WAS가 웹 서버의 기능까지 수행할 수 있지만, 웹 서버와 WAS를 분리하는 이유는 무엇일까?

1. 서버 부하 방지

- WAS는 DB 조회나 다양한 로직을 처리하고, 단순한 정적 컨텐츠는 웹 서버에서 처리해줘야 한다.

 

2. 보안 강화

- SSL을 사용하여 웹 통신을 암호화하는 경우 암호화, 복호화 처리에 웹 서버를 사용 가능

 

3. 여러 대의 WAS 연결 가능

- 로드 밸런싱을 위해 웹 서버를 사용할 수 있다. 여러 개의 서버를 사용하는 대용량 웹 애플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

- 즉, 웹 서버를 통해 클라이언트의 요청을 받고 여러 대의 WAS로 요청을 분산시킬 수 있다.

- 로드 밸런싱 : 웹 애플리케이션에 들어오는 클라이언트 요청을 여러 대의 WAS 서버로 분산시켜서 부하를 고르게 분산시키는 작업이다.


* 정리

- 웹 서버는 HTML 문서, CSS, 이미지, 파일 등과 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할을 하고 동적인 요청의 경우 WAS로 전달하는 역할을 한다. WAS는 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠 제공을 위해 만들어진 서버이며 주로 데이터베이스 서버와 같이 수행된다. WAS는 웹 서버의 역할까지 수행할 수 있지만, 서버 부하 방지, 보안 강화, 여러 대의 WAS 연결을 위해서는 웹 서버와 WAS를 분리해야 한다.


학습 단계로 잘못된 정보가 있을 수 있습니다. 잘못된 부분에 대해 알려주시면 정정하도록 하겠습니다

참고 : https://code-lab1.tistory.com/199

https://story.pxd.co.kr/1647

'이것저것 스터디📚 > CS 스터디' 카테고리의 다른 글

REST API  (1) 2023.10.16
AJAX란?  (1) 2023.10.16
CORS란 무엇인가?  (1) 2023.10.16
Keep-Alive 헤더  (0) 2023.09.25
HTTP 헤더 구조  (0) 2023.09.25