Static Pages
바뀌지 않는 페이지
웹 서버는 파일 경로 이름을 받고, 경로와 일치하는 file contents를 반환함
항상 동일한 페이지를 반환
Dynamic Pages
인자에 따라 바뀌는 페이지
인자의 내용에 맞게 동적인 contents를 반환
Web Architechture
웹 브라우저에서는 MarkUp Language(html, css, javascript)를 해석하는 능력을 가짐
그래서 초반에 Yahoo 홈페이지 처럼 일방적으로 DB를 쓰지않고 Web server(http server)만 사용한 정보제공 형식이였는데 시대가 발전함으로써 Database를 사용하려고 하다보니까 MarkUp Language로는 DB접근이 불가능
따라서 WebServer + Application Server를 포함한 WAS라는 Backend부분이 등장하기 시작한 것이고 이 부분을 관리하는 언어가 등장하기 시작함(Java, Asp, php)
다양한 언어중에 우리는 Java를 통해서 Backend 관리를 하는 것이고 Java를 이용하여 원활한 Backend관리를 위해 servlet, JSP가 등장한 것이다.
예전엔 Web Server(http Server)와 Application Server를 따로 제공했지만 요즘엔 성능이 좋아서 2개의 기능을 하나로 합친 상태로 배포를 하는데 대표적인게 Apache Tomcat, oracle weblogic ...
즉, Tomcat은 http의 대한 처리와 Java를 통한 Application 처리도 해주는 서버인 것이다!
<서버의 역할>
1. Data get
2. Logic(DBLogic, Business Logic)
3. response page(html, xml, json)
** spring에서는 restfulapi 클라이언트 요청에 따라 데이터만 넘겨줘야되서 xml, json에 대한 처리를 많이함
Web Server
웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공
HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능
WAS(Web Application Server)
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
웹 컨테이너(Web Container) or 서블릿 컨테이너(Servlet Container)라고도 불린다.
WAS = Web Server + Web Container
Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시
** Web Server가 필요한 이유는?
- 클라이언트(웹 브라우저)에 이미지 파일(정적 컨텐츠)을 보내는 과정을 생각해보자.
- 이미지 파일과 같은 정적인 파일들은 웹 문서(HTML 문서)가 클라이언트로 보내질 때 함께 가는 것 X
- 클라이언트는 HTML 문서를 먼저 받고 그에 맞게 필요한 이미지 파일들을 다시 서버로 요청하면 그때서야 이미지 파일을 받아온다.
- Web Server를 통해 정적인 파일들을 Application Server까지 가지 않고 앞단에서 빠르게 보내줄 수 있다
** WAS가 필요한 이유는?
- 웹 페이지는 정적 컨텐츠와 동적 컨텐츠가 모두 존재한다.
- 사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어서 제공해야 한다.
- 이때, Web Server만을 이용한다면 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어 놓고 서비스를 해야하지만 현실적으로 말이 안됨(자원이 절대적 낭비 및 부족)
- WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.
'CS' 카테고리의 다른 글
CS핵심이론(소프트웨어 공학, 프로그래밍, 빅데이터, 운영체제) (0) | 2022.12.12 |
---|---|
MVC 패턴 (0) | 2022.09.19 |
[JavaScript] AJAX에 대해 (0) | 2022.09.06 |
JSP와 Servlet에 대해 (0) | 2022.09.06 |
HTTP(HyperText Transfer Protocol) (0) | 2022.09.06 |