danbibibi
article thumbnail
Published 2023. 1. 14. 00:23
Web Server와 WAS WEB/기타

Static Pages vs Dynamic Pages

Static Pages

  • Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환
  • 항상 동일한 페이지 반환
  • ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들

Dynamic Pages

  • 인자의 내용에 맞게 동적인 contents를 반환
  • 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물
  • 개발자는 Servlet에 doGet(), doPost() 등을 구현

 

Web Server vs WAS

Web Server

  • 하드웨어 : 웹서버가 설치되어 있는 컴퓨터
  • 소프트웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램
  • 정적 컨텐츠 제공 or
  • WAS에 동적 컨텐츠 제공을 위한 요청 전달
  • ex) apache server ,nginx, IIS 등

WAS (Web application server)

  • DB 및 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
  • Web server + Web Container
  • 웹 컨테이너(Web Container), 서블릿 컨테이너(Servlet Container) 라고도 불림
  • ex) Tomcat, JBoss, Jeus, Web Sphere 등

 

Web Server와 WAS를 구분하는 이유

1. 기능 분리를 통한 서버 부하 방지

  • Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버의 부담을 줄이고, 앞단에서 빠르게 보내줄 수 있음
  • WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어 제공함으로써 자원을 효율적으로 사용할 수 있음

2. 물리적 분리를 통한 보안 강화

3. 여러 대의 WAS 연결 가능 (Load Balancing)

4. 여러 웹 어플리케이션 서비스 가능

 

Web Service Architecture

 

Web service는 다양한 구조를 가질 수 있음

 

- Client → Web Server → DB 
- Client → WAS→ DB 
- Client → Web Server → WAS → DB


1. Web Server는 웹 브라우저 클라이언트로부터 HTTP 요청을 받음
2. Web Server는 클라이언트의 요청(Request)을 WAS에 전송
3. WAS는 관련 Servlet을 메모리에 올림
4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성함 (Thread Pool 이용)
5. HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달
   1) Thread는 Servlet의 service() 메서드를 호출
   2) service() 메서드는 요청에 맞게 doGet() 또는 doPost() 메서드를 호출
   `protected doGet(HttpServletRequest request, HttpServletResponse response)`
6. doGet() 또는 doPost() 메서드에 맞게 생성된 동적 페이지를 Response 객체에 담아 WAS에 전달
7. WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달
8. 생성된 Thread를 종료하고, HttpServletRequest와 HttpServletResponse 객체를 제거

 

JSP와 Servlet

  • 결과적으로 하는 일은 동일
  • JSP : HTML 내부에 JAVA 소스 코드 (코드 작성이 간편함)
  • Servlet : JAVA 코드 내 HTML 코드 (.java)
  • JSP로 작성된 프로그램은 서버로 요청시, 서블릿 파일로 변환 후, JSP 태그를 분해하고 추출하여 순수한 HTML 으로 변환
  • JSP 파일이 서블릿으로 변환되는 과정은 오직 한번만 일어나므로, 처리 속도에 큰 영향을 미치지 않음

'WEB > 기타' 카테고리의 다른 글

Swagger  (0) 2023.04.27
Maven 이란?  (0) 2023.03.25
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로