[WAFFLE] 0-3 Server Basic2

1 minute read

Published:

In this post, relationship between web server, web container, WAS, web application, and fastapi is provided.

This content is based on https://www.youtube.com/watch?v=NyhbNtOq0Bc.

Web Server

태초에 웹 서버가 존재. 웹 서버는 클라이언트가 url을 가지고 통신규칙(http)에 맞게 요청하면 알맞은 응답을 줌. 이 때 응답은 html, css, 이미지 등 웹에서 처리할 수 있는 정적인 데이터로 한정됨. 예를 들어, 클라이언트에서 구구단 결과를 요청하면 1곱하기1 부터 9곱하기9까지의 결과가 일일이 적힌 html 파일을 반환. 구구단은 for문 이용하면 매우 쉽게 반환할 수 있는데 이런 프로그래밍적 요소를 활용할 수 없음. 이런 문제를 WAS에서 해결함.

WAS

아래는 WAS(web application server)의 흐름도이다. was

Web Application

Web Application은 웹에서 실행되는 응용프로그램이다.

WAS

  • WAS는 Web Application과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다.
  • Web Application을 실행시켜 필요한 기능을 수행하고 그 결과를 Web Server에게 전달한다.
  • php, jsp와 같으 언어들을 사용해 동적 컨텐츠를 생성할 수 있는 서버이다.
  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공하고, 비즈니스 로직 수행이 가능하다.
  • Web Sever + Web Container 로 구성된다.
  • Container는 jsp, servlet을 실행시킬 수 있는 소프트웨어이다. 자바 계열에선 Web application Container라 부르며 Web Application이 배포되는 공간이다.

FastAPI

FastAPI는 python 웹 프레임워크로, WAS와 Web Container의 역할을 모두 수행할 수 있다. FastAPI는 클라이언트 요청을 받아들이고, 이를 처리하여 동적인 응답을 생성해주는 API 서버로 작동한다. 따라서 Web Server(Nginx, Apache 등)와 함께 배치하여, 클라이언트의 요청을 Web Server가 FastAPI로 전달하고 FastAPI가 이를 처리하여 동적컨텐츠를 생성하는 구조로 사용할 수 있다.

Leave a Comment