티스토리 뷰
반응형
WAS
- 개념
- DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- HTTP를 통해 컴퓨터나 장치에 에플리케션을 수행해주는 미들웨어
- 역할
- WebServer + WebContainer
- WebServer 기능들을 구조적으로 분리하여 처리하고자 만들어짐
- 기능
- 프로그램 실행 환경과 DB 접속 기능 제공
- 여러 개의 트랜잭션 관리 기느
- 비즈니스 로직 수행
- 프레임 워크
- Tomcat, Dingo, Express
- Express특징 (React에서 Express 사용 이유)
- React 개발을 도와주는 도구들을 내장하고 있는 오픈소스
- JavaScript Runtime Environment
WebServer
- 개념
- 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공
- HTTP 프로토콜을 기반으로 클라이언트의 요청을 서비스하는 기능 담당
- 역할
- WebServer + WebContainer
- WebServer 기능들을 구조적으로 분리하여 처리하고자 만들어짐
- 기능
- 정적인 컨텐츠는 WAS를 거치지않고 바로 제공
- 동적인 컨텐츠는 WAS에 Request 요청을 보내고, 결과를 클라이언트에게 Response
- 클라이언트는 일반적으로 웹 브라우저를 의미
- 프레임워크
- Apache Server, Nginx
- Nginx 특징 (React에서 Nginx 사용 이유)
- 비 동기 Event-Driven 기반의 구조
- 다수의 연결을 효과적으로 처리 가능
- 대부분의 코어 모듈이 Apache 보다 적은 리소스로 더 빠르게 동작
- Apache 보다 더 작은 쓰레드로 클라이언트의 요청 처리 가능
WAS와 Web Server를 구별하는 이유
- WAS가 WebServer의 기능을 모두 수행하지 않는 이유
- 기능을 분리하여 서버 부하를 방지
- WAS는 DB조회나 다양한 로직을 처리
- 단순한 정적 컨텐츠는 WebServer에서 클라이언트에게 빠르게 제공
- 물리적으로 분리하여 보안 강화
- SSL에 대한 암복호화 처리에 WebServer 사용
- 여러대의 WAS를 연결 가능
Web Service Architecture
- Client -> WebServer -> DB
- Client -> WAS -> DB
- Client -> WebServer -> WAS -> DB
- 3번 Architecture 동작 과정
- Web Server는 웹 브라우저 클라이언트로부터 HTTP 요청을 받는다.
- Web Server는 클라이언트의 요청(Request)을 WAS에 보낸다.
- WAS는 관련된 Servlet을 메모리에 올린다.
- WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다. (Thread Pool 이용)
- HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달한다.
- Thread는 Servlet의 service() 메서드를 호출한다.
- service() 메서드는 요청에 맞게 doGet() 또는 doPost() 메서드를 호출한다.
- doGet() 또는 doPost() 메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response 객체에 담아 WAS에 전달한다.
- WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달한다.
- 생성된 Thread를 종료하고, HttpServletRequest와 HttpServletResponse 객체를 제거한다.
- React로 3번 Architecture 구성시
- Client(React) -> WebServer(Nignx) -> WAS(Express) ->DB
반응형
'Web' 카테고리의 다른 글
[React] 엔터키 입력으로 로그인 하기 onKeyPress (0) | 2022.05.03 |
---|---|
[React] Router Custom, Router를 사용한 사용자 권한 체크 (0) | 2021.11.12 |
Context (0) | 2021.07.29 |
React 설치 (1) | 2021.07.29 |
리엑트 기초 요약 (0) | 2021.07.23 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Mac docker.for.mac.host.internal
- Pytorch #Yolov5 #Segementation
- BOJ #JS
- react #img 전송
- linux/amd64/v2
- node.js 파일 저장
- JavaScript #Programmers #lvl2 #프로그래머스 오픈채팅방 # 오픈채팅방 문제
- ec2 instance connect is unable to connect to your instance. ensure your instance network settings are configured correctly for ec2 instance connect. for more information
- supported: linux/amd64
- PoolCluster : Error: connect ECONNREFUSED 127.0.0.1:3306)
- mysql date type
- Swal #sweetalert2 #alert #알림창 띄우기 #react swal
- FormData #FormData 파일전송 #FormData append json # React FormData File #React FormData append Json
- AWS #인바운드 #SSH #인스턴스 연결
- see ec2 instance connect prerequisites at https://docs.aws.amazon.com/awsec2/latest/userguide #인스턴스 연결 안됨
- node.js #node.js pdf만들기 #node.js pdfkit
- Express multer #Express File 저장 #node.js
- excel 파일 만들기 #node.js #express excel 파일 만들기 #데이터 입력해서 excel 파일 만들기
- 이미지 전송 # 이미지 업로드 #이미지 여러장 #이미지 여러장 업로드 #react 이미지 업로드 #react 이미지 여러장 업로드
- mysql date between performance
- mysql date between # mysql date between 대소 비교 연산자
- mysql date
- reack-cookies #아이디 저장하기 #react 아이디 저장 #react cookie #리엑트 아이디 저장하기
- Procedure #mysql #mysql Procedure #mysql 반복문 #Procedure 반복문 #mysql insert 반복문
- React filter #js Includes #React Filter includes
- PDF #pdfkit
- docker # docker build # m1 docker build
- react #react-spinners #modal loading #overlay #로딩창 #react 로딩창 만들기
- docker mysql
- ERROR: failed to solve: no support for running processes with linux/amd64/v3 platform
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
글 보관함