정적 컨텐츠 (Static)
누가 언제 서버에 요청하더라도 동일하게 내용을 보여주는 것
Html, Css, Js, Image 같은 요소들로 이미 만들어진 결과물을 사용자에게 보여주는 것
쿠팡의 상단 카테고리바, 유튜브 로고 등
동적 컨텐츠 (Dynamic)
누가 언제 어떻게 서버에 요청했는지에 따라 다른(변화하는) 내용이 보여지는 것
어떤 사용자가, 언제, 어떤 기기로 접속했는지에 따라 웹페이지가 달라지는 데이터
PHP, JSP 파일등 데이터의 처리가 필요하다.
쿠팡의 장바구니, 유튜브 맞춤 채널 등
'''
정적파일, 정적 페이지, 동적 페이지 등 비슷한 개념으로 이해함.
'''
웹서버
클라이언트가 요청한 정적인 콘텐츠를 HTTP 프로토콜을 통하여 제공해주는 서버
1.정적인 콘텐츠 제공
2. 동적인 요청이 클라이언트로부터 들어왔을 때, 해당 요청을 웹 서버에서 처리할 수 없기 때문에 컨테이너(Container)로 보내주는 역할
Apache, Nginx, IIS 등이 있음.
컨테이너
동적인 데이터들을 처리하여 정적인 페이지로 생성해주는 소프트웨어 모듈
동적으로 처리해야 하는 부분을 웹서버 대신 처리해서 웹 서버에 정적인 파일로 만들어서 보내주는 모듈
JSP,Servlet 구동 환경을 제공해 주어 컨테이너라고 불림,
(JSP, servlet을 실행시킬 수 있는 소프트웨어 = 서블릿 컨테이너 = 웹 컨테이너)
'''
자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
서블릿 컨테이너는 서블릿을 관리해주는 것 : 서블릿 객체를 생성, 초기화, 호출 종료하는 생명 주기를 관리, 웹서버와의 손 쉬운 통신 지원 등 을 함.
'''
WAS (Web Application Server)
이러한 웹 서버와 컨테이너를 붙여놓은 서버라고 보면 됨.
WAS는 웹서버와 컨테이너의 기능을 다 할 수 있다.
웹서버 혼자서 처리할 수 없는 데이터베이스 조회나 다양한 로직 처리가 필요한 동적 컨텐츠 제공함.
Tomcat, Jeus, JBoss 같은 것들이 있다
'''
Tomcat은 아파치의 기능도 포함하여 Apache Tomcat 이라고도 불림
'''
Web Service Architecture
웹 서비스는 아래와 같이 다양한 구조를 가짐.
(1) Client -> 웹 서버 - > DB
(2) Client -> WAS -> DB
(3) Client -> 웹 서버 -> WAS -> DB
서버 부하 방지, 보안 강화를 위해 웹서버와 WAS를 분리하여 구성한다.
WAS는 DB 조회나 다양한 로직을 처리에 집중하고 단순한 정적 컨텐츠는 웹 서버에 맡긴다.
Clinet가 웹 서버에 HTTP 요청을 보내면 웹 서버는 정적인 컨텐츠 요청은 바로 응답하고, 동적인 컨텐츠 요청은 WAS에게 넘겨서 처리하고 결과를 WAS에게 받아서 클라이언트에게 넘겨준다.
'''
알아보면서 추가적으로 찾은 것:
WAS의 사용언어는 PHP,JSP,ASP
쿼리는 DB에 정보조회를 요청하는 것
데몬은 유닉스(Unix) 운영체제에서 부팅 시 자동으로 켜져, 눈에 보이지 않는 백그라운드에서 계속 실행되는 프로세스(프로그램) ~d
'''
출처, 참고
https://melonicedlatte.com/web/2019/06/23/210300.html
https://code-lab1.tistory.com/199
===== 추가
1. Client => React로 구성된 UI에서 특정한 폼에 데이터를 입력하여 백엔드 서버(Spring)로 API 요청이 시작된다.
2. Nginx는 정적 컨텐츠 제공해주고 동적 요청을 전달하는데 리버스 프록시로서 동작하여 적절한 백엔드 서버로 전달
/*
웹 서버 사용 이유 => 1. 보안 (예를 들면 프록시) 2. 로드밸런싱 (트래픽 분산) 3. 로깅(어떤 http 요청 해놓았는지 남기는 기능)
flask 같은 경우 wsgi 서버와 함꼐 구성되어 사용
사용자인증, 결제 등등 기능별로 다양한 백엔드 서버가 구성될 수 있다.
*/
3. Tomcat 서버(Java 애플리케이션 호스팅 및 클라이언트 요청에 대한 로직 처리) 내에서 호스팅되는 Spring에서 처리하고 데이터베이스에 저장과 같은 로직들을 수행
/*
Tomcat은 Java 애플리케이션(Spring 등)을 직접 실행합니다. Tomcat 내부에서 Spring은 서블릿이나 컨트롤러 형태로 존재
*/
4. Spring이 Tomcat을 통해 Nginx로 반환하고 클라이언트에게 전달
5. React UI에서 사용자에게 표시된다.
/*
미들웨어는 서로 다른 서비스가 통신을 원활하게 하기 위해 중개 역할을 수행. 넓은 개념으로 쓰여 WAS를 포함하는 개념으로도 쓰인다. 예를 들면 메세지 큐를 이용하여 한번에 여러 요청을 동시에 처리할 수 있다.(비동기적 통신)
*/
'독서,검색 > 기타' 카테고리의 다른 글
230602 DMZ 와 NAT (0) | 2023.06.02 |
---|---|
230523 서브넷 마스크 (0) | 2023.05.23 |
230106 Xampp란 (0) | 2023.01.06 |