IT/Application_어플리케이션

[WEB/Network] CGI, WAS, WSGI란??

무브영/movewoo0 2021. 3. 9. 21:03
728x90
반응형

안녕하세요. 이번 포스팅에서는 CGI, WAS, WSGI 각각의 개념과 차이점을 알아보도록 하겠습니다.

 

 


 

0. 웹서버란

 

웹서버는 브라우저(인터넷)을 통해 요청이 들어온 여러가지 컨텐츠(html 문서, Image 등)의 전달을 도와주는 존재를 말합니다. H/W, S/W 형태 모두가 될 수 있습니다. 기본적으로 웹서버는 '정적'이고 클라이언트가 HTTP 요청을 하여 리소스를 요청하면 이를 응답하는게 웹서버의 역할입니다.

 

 

 


 

1. CGI / WAS / WSGI

 

1). CGI(Common Gateway Interface)

웹서버에서 어플리케이션을 작동시키기 위한 인터페이스. 웹서버가 단독으로 작동할 때의 정적인 동작을 동적으로 기능시키기 위해서 존재합니다.

 

기존 동작 방식으로 웹서버로 클라이언트에서 외부 프로그램의 요청이 들어오면 CGI를 통해서 외부 프로그램을 실행시켜 요청에 응답합니다.

 

여기에 웹서버에 인터프리터를 내장하는 방법으로 따로 프로세스를 생성하여 외부 프로그램을 실행시키지 않고 바로 내부에서 처리하는 방식도 등장했습니다.

 

2). WAS(Web application Server)

WAS도 하나의 웹서버 이지만 이 웹서버는 동적으로 작동합니다. 단순하게 생각하면 웹서버(web server)와 CGI가 합쳐진 형태라고 할 수 있습니다.
웹서버로 사용되는 서버에 동적 서버 어플리케이션을 동작 시키는 것이 WAS입니다.

대표적 WAS인 JBoss, Tomcat

 

3). WSGI(Web Server Gateway Interface)

WSGI는 파이썬 스크립트 즉, 웹 어플리케이션이 웹 서버와 통신하기 위한 인터페이스 입니다. WSGI 요청을 처리하기 위해서는 서버에서 환경정보, 콜백함수를 어플리케이션에 제공해야합니다.
어플리케이션은 요청을 처리하고 콜백함수를 통해 응답합니다.

WSGI를 지원하는 대표적인 웹어플리케이션 Flask, Django

 

 

 

 


 

 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

728x90
반응형