- Static Page & Dynamic Page
1) Static Page
- Web Server는 파일 경로 이름을 받아서 경로와 일치하는 file contents 들을 반환한다.
- 항상 같은 페이지를 반환한다.
- EX) image, html, css, js와 같은 정적 파일
2) Dynamic Page
- 인자의 내용에 따라서 page과 바뀌는 동적인 Content들을 반환한다.
- WAS에 의해서 실행되는 프로그램(EX- JSP, Servlet)을 통해 만들어진 결과물
- Web Server
- 웹 서버는 클라이언트 서버에 요청을 보내면 이를 받아서 정적 컨텐츠 (.html/ .png/.css)등을 제공하는 서버이다.
- 클라이언트의 요청이 올때 가장 앞 단에서 요청에 대한 처리를 한다.
- Web Server의 기능
- 1) 정적인 컨텐츠 제공/ WAS를 거치지 않고 바로 자원 제공
- 2) 동적인 컨텐츠 제공을 위한 요청 전달- Client의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달한다.
- Web Server의 예시 : Apache Server, Nginx, IIS...
- WAS (Web Application Server)
- WAS란?
- DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- 주로 데이터베이스 서버와 같이 수행이 된다.
- WAS= Web Server+Web Container
- WAS의 예시 - Apache Tomcat, JEUS, JBoss.....
- Web Container란?
- 동적인 데이터/파일(Servlet, JSP, Server-side code 등)에 대한 요청들을 처리하여 정적인 페이지로 생성해주는 소프트웨어 모듈이다.
- 웹 컨테이너(서블릿 컨테이너)의 , 서블릿의 생명주기를 관리하고, URL과 특정 서블릿을 매핑하여 URL 요청이 올바른 접근 권한이 갖도록 보장한다.
- 서블릿 객체를 생성하고, 서블릿을 load/unload하며, 요청-응답 객체를 생성하여 관리하고, 다른 서블릿의 관리 작업을 수행하기도 한다.
- Web Server와 WAS를 구분하는 이유?
- Web Server가 필요한 이유
- 클라이언트에게 응답이 보내질때는 HTML 문서가 먼저 보내지고, 그에 맞게 필요한 이미지 파일들이 서버로 요청되면 그때서야 보내진다.
- 따라서 Web Server만을 사용해 정적인 파일들을 앞단에서 빠르게 보낼 수 있고, Web Server에서 정적 컨텐츠들만 처리하도록 한다.
- WAS가 필요한 이유
- 웹페이지는 정적 컨텐츠와 동적 컨텐츠가 모두 존재하므로, 사용자의 요청에 맞는 적절한 동적 컨텐츠를 만들어 제공해야한다.
- Web Server만을 이용한다면 사용자가 원하는 결과값을 모두 만들어 놓고 서비스해야 하며, 이는 절대적으로 자원의 낭비이다.
- 따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 그때그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.
- WAS와 Web Server를 분리하는 이유
- WAS는 DB 조회나 다양한 로직을 처리하느라 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 응답하는게 훨씬 서버의 부하를 방지하는데 도움이 된다.
- 만약 정적 컨텐츠의 요청까지 WAS가 처리한다면 정적 데이터 처리로 인해 부하가 커지고, 동적 컨텐츠의 처리가 지연되므로 수행 속도가 느려진다.
- 이외에도 보안성, 여러 대의 WAS 결합, 동시 웹어플리케이션 서비스, 배포 및 유지보수의 편의성등의 이유가 있다.
'Web > Server' 카테고리의 다른 글
AWS EC2 서버에 도메인/HTTPS/Redirection 적용 (0) | 2022.02.17 |
---|---|
AWS EC2 서버 구축/환경설정+ DB 외부 접속 (0) | 2022.02.15 |
Bitnami로 로컬 서버 구축/포트포워딩을 통한 외부 접속 (0) | 2022.02.14 |
Ubuntu가 검은 커서에서 부팅되지 않는 오류 (10) | 2022.02.11 |
VMware에 리눅스 서버환경 구축+ APM 수동 설치 (0) | 2022.02.09 |