Search
Duplicate
📒

[Spring Study] 02-1. WAS 개념, SOCKET 구현

상태
수정중
수업
Spring Study
주제
Servlet
연관 노트
3 more properties
참고

WAS (Web Application Server)

NOTE
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
Web Server → 정적 컨텐츠 담당 Web Container → 동적인 컨텐츠 담당
HTTP를 통해 컴퓨터나 장치에 Application을 수행해주는 미들웨어(소프트웨어 엔진) 이다
웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 부른다.
Application Server
Servlet을 통해서 요청메시지를 처리함 ( Request, Response )
1.
Data get
2.
Logic
3.
response page

Web Server vs WAS

WebServer
웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(html, css, Js, 이미지, 영상 등등..) 등을 제공함
WAS를 거치지 않고 바로 데이터 제공, 동적인 컨텐츠 제공을 위한 요청을WAS에게 전달해줌
WAS
Web Server의 기능을 구조적으로 분리하여 처리하고자 만들어짐
주로 DB서버와 같이 수행됨
ex) 서블릿, JSP, 스프링 MVC

참조

구분하는 이유
WAS가 장애가 발생하면 아무것도 못행..
WASWebServer의 기능도 모두 수행은 가능하지만 단점이 존재한다
WAS에 장애가 발생했을 시 가용 서버 자체가 없기에 오류 화면 노출도 불가능하며WAS에 너무 많은 역할을 담당하게 되기에 서버 과부하가 생긴다.
이러한 이유로 관심사 분리 웹 애플리케이션 서버 앞에 일반 웹 서버 (프록시 서버)를 놓는 방식을 권장한다.
프록시 서버(관심사의 분리)
Web Server(프록시)를 두어 부하를 줄인다!
프록시(웹 서버)가 정적 리소스를 처리해서 WAS의 부담을 줄여준다!
확장면에서도 구분해서 할 수 있다
리소스 관리가 효율적으로 이루어짐
정적 리소스가 많아진다 → 웹 서버 증설
애플리케이션 리소스가 많아진다 → WAS를 증설
참고로 API만 제공한다면 굳이 웹 서버를 사용할 필요는 없음

WAS 실습 - SOCKET

NOTE
서버에서 처리해야 할 작업(순수 서버구현)
SOCKET 이란?
프로세스가 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제 창구 역할을 한다
프로토콜, IP 주소, 포트 넘버로 정의된다.
1.
Client class를 생성한다
2.
해당 클래스에 서버의 ip주소port번호를 넣고 출력 스트림으로 넘어간 후 Server Socket에 접근한다
3.
Server Socket classclinet가 접속을 했는지 확인하는 용도
4.
접근이 인식되면 서버는 클래스는 Socket.accpet()를 실행한다.
Socket으로 하는거라서 .java 파일 실행하고 주소로 직접 들어가야함
Socket 코드
Response , Request 코드
Clinet 요청받기 코드
QueryString 파싱 코드

SOCKET - GET

NOTE
Header
Response
GET - (처음 index.html 불러옴) 코드
Header
GET - (/list 게시판 목록 가져오기) 코드

SOCKET - POST

NOTE
header
payload
payload
POST - (글 생성) 코드