[스프링부트] 1. WAS

문정준's avatar
Mar 12, 2025
[스프링부트] 1. WAS
✏️

WAS vs WS

  • Web Server : 요청 받은 html 파일을 출력
  • Web Application Server : 요청 받은 파일을 컴파일, 실행 후 출력
    • 출력 결과는 브라우저에서 인식할 수 있어야 함
 

1. WAS란?

  • WAS (Web Application Server) : 애플리케이션 (프로그램)을 실행시킨 결과를 웹으로 제공
    • URL / URI
      • URL : 파일 식별자, 파일명 경로를 전부 포함
      • URI : 파일 식별자 경로
    • 애플리케이션을 실행할 수 있다는 점에서 웹 서버와 차이가 있음
      • 웹 서버 : 요청 받은 HTML 파일의 내용 전송 → 브라우저에서 출력
      • 웹 애플리케이션 서버 : 요청 받은 앱 컴파일 후 실행 → 결과 전송 → 브라우저에서 출력
notion image
 
 

2. WS 작동 구조

  • A 사용자가 B 서버에게 URL 요청
    • 웹은 http 프로토콜을 사용 : http://IP주소:포트번호/폴더명/파일명
    • 서버는 요청 받은 URL을 파싱 후 맞는 파일을 File System에서 찾음
    • 찾은 파일의 내용을 읽어 사용자에게 전달
    • 사용자는 브라우저에서 Rendering을 통해 내용 확인 (브라우저에서 내용 자동 해석)
✏️

웹 서버는 URL 요청을 받아 파일을 찾아주는 것으로 역할이 끝난다!

notion image
 

3. WAS 작동 구조

  • A 사용자가 B 서버에게 URL 요청
    • http 프로토콜을 사용 : 위와 같은 형식의 URL이 전송됨
    • 서버에서는 파싱을 통해 요청한 파일이 html인지, 다른 애플리케이션 파일인지 확인
      • HTML 파일일 경우, 웹 서버처럼 HTML 파일 내용을 읽어 사용자에게 전송
      • 아닐 경우, 다음의 과정을 걸쳐 사용자에게 내용 전송
          1. URL 읽기 (필요한 파일 확인)
          1. 컴파일 & 실행 → 결과 도출
          1. 결과를 버퍼에 넣어 전송
      • 서버가 전송하는 결과는 브라우저에서 읽을 수 있는 형태여야 함
    • 사용자는 브라우저에서 Rendering을 통해 내용 확인
notion image
 

Structures of Operations about WAS with Servlet

  1. 클라이언트 측에서 URL 혹은 a 태그를 통해 GET 메서드 요청
      • 이때, 클라이언트 측의 Request에는 Body가 없음 ( Header 값만 존재 )
  1. WAS에서 Request를 수신하고 파싱 ( 식별자 클래스를 찾음 )
      • URL 형태(.html)로 전송했을 경우, HTML 파일을 출력해서 Response
  1. 필요한 정보들을 HTML + Java 실행 결과 형태로 resp에 담고 전송
      • 결과물은 완전한 HTML 파일로 담음
      • 이 형태를 서버에서 그림을 그린다 하여 Server-Side Rendering
  1. 클라이언트 측 브라우저에서 전송 받은 HTML 파일을 Rendering을 통해 출력
notion image
Share article

sxias