issues
search
prgrms-web-devcourse
/
BE-Team-preArmand-Book-study
2
stars
2
forks
source link
[외워서 끝내는 네트워크 핵심이론 - 기초] 섹션 5-2
#53
Open
epicblues
opened
1 year ago
epicblues
commented
1 year ago
웹 서비스 기본 구조
Web 서비스는 TCP 연결을 전제로 한다
Stateless
TCP의 ‘연결’ 이랑 헷갈리지 말 것
Web Client
브라우저
Web Server
앞단에 존재하는 컴포넌트들 존재
IPS
1차 방어 체계
SSL
가속기
HTTPS → HTTP
암호화 → 평문
WAF
Web Application Firewall
2차 방어 체계
웹 서버와 WAS 사이에 위치할 수도 있음
리소스 송수신 only
정적 컨텐츠
동적 컨텐츠
from WAS
DB에 직접 접근하지 않는다!!!
Web Application Server
DB와 직접 통신
연산
비즈니스 로직 실행
동적 컨텐츠
생성
HTTP method
GET
다운로드
POST
클라이언트 → 서버 데이터 전송
서버와 클라이언트의 양방향 상호 작용이 생김
상태 전이가 필요해졌음
서버/클라이언트의 양방향 통신 내역을 기억해둬야 한다!
그런데 HTTP는 기본적으로 stateless
상태를 어디에 기억시켜야 할까?
클라이언트
Cookie
서버
Database
Web 서버에도 DB를 써야 하네
기억해야할 상태가 너무 많기 때문
POST의 데이터
원격지 사용자 입력 ←
검증 대상
절대 신뢰해서는 안된다!
쿠키에 실려 있는 id와 password가 맞는지 DB에 질의해서 검증
SQL injection 방어
소프트웨어 개발 시 설계 원칙
원칙의 목적 : 유지 보수
반드시 3개를 분리시켜라
UI
웹에서는 CSS
Data
웹에서는 HTML
텍스트와 태그를 구분해서 분석
비즈니스 로직(제어)
웹에서는 JS
동적 움직임에 대한 규칙을 스크립트 형태로 기술
MochaScript → LiveScript → JavaScript
APM
DB 응답시간 모니터링
usecase
JVM을 모니터링
JVM
어플리케이션 계층
가상의 CPU 생성
해당 가상 CPU가 이해할 수 있는 기계어 = java bytecode
미들웨어
다른 소프트웨어(내가 작성한 비즈니스 로직 코드)들이 잘 작동할 수 있도록 도와주는 소프트웨어
TCP/IP
DB
File
ex) java의 서블릿 컨테이너
컨테이너 관련 프레임워크
Sprin
패러다임 변화
HTML 문서의 문제점
DATA + UI 의 결합
응답의 유형을 분리하자!
only DATA
XML
JSON
자바스크립트가 서버로부터 DATA를 받아서 html을 직접 생성
React, Vue
요청의 변화
단순히 문서를 요청하는 것이 아닌 CRUD 성격이 생김
WAS의 사용자 함수를 ‘호출’
RESTful API(함수)
HunkiKim
commented
1 year ago
웹 서비스 기본 구조
Web -> HTML, HTTP로 구현
TCP/IP 연결도 기반이다.
브라우저 == 문서뷰어
HTTP , TCP/IP연결
request.method == Get문서
response
html(data) + css
정적이다.
js까지 날리면 동적 + jpg
Client와 서버의 양방향 상호작용 + 상태전이
But http는 stateless
상태전이는 잊혀지게 된다.
쿠키
상호작용을 위한 기억의 구상물
처리용, DB도 나옴
처리가 우리 웹어플리케이션
Was
APM -> Scounter
DB와 Was의 응답시간
JVM
JVM -> CPU라고 생각 CPU를 머신이라고 많이부름
Virtual -> User(kernel)
Java byte code
middleware
tcp/ip
db
file
등 공통으로 쓰는것들을 처리하는곳
다른말로 Servlet Container
다른말로 WAS (Tomcat)
그 위에 Framework
코드뭉치가 막 생겼다 없어졌다 함.
화면오는거 제한적이다.
xml, json 자료만 보내자
js가 html 생성
RestfulAPI로 변함
오기전에 IPS(1st), SSL, WAF(Web application firewall(2st))
즉 Client와 웹서버사이
가끔 웹서버와 어플리케이션사이에 있을수도
웹 서비스 기본 구조
DB에 직접 접근하지 않는다!!!
생성
HTTP method
GET
POST
상태 전이가 필요해졌음
검증 대상
소프트웨어 개발 시 설계 원칙
APM
JVM
패러다임 변화