Web Server
하드웨어, 소프트웨어로 구분된다.
하드웨어 : Web 서버가 설치되어 있는 컴퓨터
소프트웨어 : 웹 브라우저 클라이언트로부터 Http요청을 받아 정적인 컨텐츠(Http, css 등) 을 제공하는 컴퓨터 프로그램
웹 서버 기능
Http 프로토콜을 기반으로, 클라이언트의 요청을 서비스하는 기능을 담당한다.
정적 컨텐츠 제공(정적 페이지)
WAS를 거치지 않고 바로 자원을 제공한다.
동적 컨텐츠 제공을 위한 요청 전달(동적 페이지)
클라이언트 요청을 WAS에 보내고, WAS에서 처리한 결과를 클라이언트에게 전달한다.
웹 서버 종류 : Apache, Nginx 등
WAS(Web Application Server)
- 아파치 소프트웨어 재단에서 개발한 DB조회 및 다양한 로직처리 요구시 동적인 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버이다.
- Http를 통해 애플리케이션을 수행해주는 미들웨어
- WAS는 웹 컨테이너, 서블릿 컨테이너 라고도한다.
컨테이너 : JSP, Servlet을 실행시킬 수 있는 소프트웨어이며 즉 WAS는 JSP, Servlet 구동환경을 제공한다.
WAS 역할
WAS = 웹 서버 + 웹 컨테이너
웹 서버의 기능들을 구조적으로 분리하여 처리하는 역할
보안, 스레드 처리, 분산 트랜잭션 등 분산환경에서 사용된다. (주로 DB서버와 함께 사용된다.)
WAS 주요기능
프로그램 실행 환경 및 DB접속 기능 제공
여러 트랜잭션 관리 기능
업무를 처리하는 비즈니스 로직 수행
WAS 종류 : tomcat, jboss 등
웹 서버가 필요한 이유
웹 서버에서는 정적 컨텐츠만 처리하도록 기능분배를 하여 서버 부담을 줄이는 것이다.
클라이언트가 이미지파일(정적 컨텐츠)를 보낼 때
웹 문서(html문서)가 클라이언트로 보내질 때
이미지파일과 같은 정적파일은 함께 보내지지 않는다.
먼저 html 문서를 받고, 이에 필요한 이미지 파일들을 다시 서버로 요청해서 받아오는 것이다.
웹 서버를 통해서 정적인 파일을 애플리케이션 서버까지 가지 않고 앞단에 빠르게 보낼 수 있다.
WAS가 필요한 이유
WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 결과를 만들고, 제공하면서 자원을 효율적으로 사용할 수 있다.
동적인 컨텐츠를 제공해야 할 때 웹 서버만으로는 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어놓고 서비스하기에는 자원이 절대적으로 부족하다.
따라서 WAS를 통해 요청이 들어올 때마다 DB와 비즈니스로직을 통해 결과물을 만들어서 제공한다.
WAS는 DB 조회, 다양한 로직을 처리하는 데 집중해야 한다.
따라서 단순한 정적 컨텐츠는 웹 서버에게 맡기며 기능을 분리시켜 서버 부하를 방지하는 것이다.
만약 WAS가 정적 컨텐츠 요청까지 처리하면,
부하가 커지고 동적 컨텐츠 처리가 지연되면서 수행 속도가 느려진다.
→ 페이지 노출 시간 늘어나는 문제 발생!
또한, 여러대의 WAS를 연결지어 사용이 가능하다.
웹 서버를 앞단에 두고 WAS에 오류가 발생한다면 사용자가 이용하지 못하게 막은 뒤 재시작하여 해결가능하다. (사용자 오류 불편인지 하지않고 이용 가능)
웹 서버를 WAS앞에 두고, 필요한 WAS들을 웹 서버에 플러그인 형태로 설정하면 효율적인 분산처리가 가능하다.
'IT 정보 > IT 용어' 카테고리의 다른 글
DOM - HTML (2) | 2022.10.07 |
---|---|
정적 페이지 vs 동적 페이지 (0) | 2022.10.06 |
딥러닝 (2) | 2022.09.22 |
애플 페이 (0) | 2022.09.16 |
'코볼 컬리그' - 초보 메인프레임 개발자를 위한 검색 AI 툴 (0) | 2022.09.16 |
댓글