[ Web Server란? ]
클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램
1) Web Server의 기능
- HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 등)를 서비스함.
- 정적인 컨텐츠 요청
※ 정적인 컨텐츠 제공
- 동적인 컨텐츠 요청
※ 요청을 WAS에 보내고 WAS가 처리한 결과를 클라이언트에게 전달
ex) Apache
[ WAS(Web Application Server) 란? ]
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
1) HTTP를 통해 컴퓨터나 장치에 Application을 수행해주는 미들웨어
- JSP, Servlet 구동 환경 제공
2) WAS 기능
- 프로그램 실행 환경 및 DB 접속기능을 제공
- 여러 개의 트랜잭션 관리 기능
※ 트랜잭션? – 사람이 설계한 논리적인 작업 단위
ex) 게시물을 등록할 때의 insert문과 게시판을 최신 정보로 업데이트할 때의 select문을 합친 작업 단위 => 하나의 트랜잭션
- 업무를 처리하는 비즈니스 로직 수행
[ 왜 구분해서 쓸까? ]
1) 기능을 분리하여 서버 부하를 방지
- WAS는 DB 조회나 다양한 로직을 처리하느라 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트에 제공
- Web Server에서는 정적 컨텐츠만 처리하도록 하여 서버의 부담을 줄일 수 있음.
2) 여러 개의 WAS 연결 가능
- 오류가 발생하여도 오류가 발생한 WAS를 이용하지 못하게 한 후, 다른 WAS를 재시작 함으로써 사용자는 오류를 느끼지 못함.
[ 동작 과정 ( 이 과정 이외에서 다양한 구조를 가질 수 있음 ) ]
구조 : # Client => Web Server => WAS => DB #
1) 웹 서버는 클라이언트에게 HTTP 요청을 받음.
2) 웹 서버는 클라이언트의 요청을 WAS에 보냄.
3) WAS는 요청과 관련된 Servlet을 메모리에 올림.
4) Servlet은 요청에 따라 생성된 동적 페이지를 WAS에 전달
5) WAS는 해당 결과를 웹 서버에 전달
6) 웹 서버는 WAS에서 받은 결과를 클라이언트에 전달.
'서버' 카테고리의 다른 글
[Apache] https redirect 설정 (0) | 2021.04.26 |
---|