스프링 MVC (1)



WEB / WAS

모든 것이 HTTP

HTTP 메시지에 모든 것을 전송

웹 서버

웹 애플리케이션 서버(WAS - Web Application Server)

웹시스템 구성 - WEB, WAS, DB

서블릿

웹 애플리케이션 서버를 직접 구현한다면?

웹 브라우저가 생성한 요청 HTTP 메시지

POST /save HTTP/1.1

Host: localhost:8080

Content-Type: application/x-www-form-urlencoded

username=kim&age=20

서버에서 HTTP 응답 메시지 생성

HTTP/1.1 200 OK

Content-Type: text/html;charset=UTF-8

Content-Length: 3423

<html>

  <body>...</body>

</html>
  1. 서버 TCP/IP 연결 대기, 소켓 연결
  2. HTTP 요청 메시지를 파싱해서 읽기
  3. POST 방식, /save URL 인지
  4. Content-Type 확인
  5. HTTP 메시지 바디 내용 파싱
    • username, age 데이터를 사용할 수 있게 파싱
  6. 저장 프로세스 실행
  7. 비지니스 로직 실행 »»»» 의미있는 비지니스 로직
    • 데이터베이스에 저장 요청
  8. HTTP 응답 메시지 생성 시작
    • HTTP 시작 라인 생성
    • Header 생성
    • 메시지 바디에 HTML 생성해서 입력
  9. TCP/IP에 응답 전달, 소켓 종료

!! 의미있는 비즈니스 로직을 제외하고 서블릿이 처리해준다.


서블릿 - HTTP 요청, 응답 흐름

@WebServlet(name="helloServlet", urlPatterns="/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response){
        // 애플리케이션 로직
    }
}

동시요청 - 멀티 쓰레드

쓰레드

요청마다 쓰레드 생성

쓰레드 풀

쓰레드 풀 - 실무 팁

WAS의 멀티 쓰레드 지원 ***


HTTP API

SSR 서버사이드 렌더링

CSR - 클라이언트 사이드 렌더링

백엔드 SSR

출처 : 인프런 - 스프링MVC(김영한 님)

Comments

comments powered by Disqus