본문 바로가기
Web

웹 서버(Web Sever) / 웹 어플리케이션 서버 (Web Application Server, WAS) / CGI

by 넬준 2022. 6. 15.

웹 서버 Web Server

HTTP를 기반으로 클라이언트와 request/response를 주고받는 서버

추가적인 소프트웨어 없이 웹 브라우저만으로 서비스 제공

 

1. 정적 데이터를 WAS를 거치지 않고 바로 제공

단순 html 문서, css, js, image, file 등등

 

2. 동적 데이터 요청을 WAS로 전달

만약, 클라이언트로부터 동적인 처리가 필요한 요청이 웹 서버로 왔다면 이를 WAS로 요청을 넘긴다.

이후, WAS가 처리한 결과를 받아 클라이언트에게 응답한다.

 

 

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

웹 서버로부터 온 동적 요청을 처리해 이를 웹 서버로 보내는 서버

 

WAS가 웹 서버의 역할을 포함하기도 한다.

하지만  정적 데이터 요청을 처리하느라, 정작 어플리케이션의 가장 중요한 기능인 비즈니스 로직 수행을 제대로 못할 수도 있다. 그래서 둘의 역할을 분리해 각 서버의 부하를 줄일 수 있다. 또한, 정적 데이터, 동적 데이터를 각각 더 빠르게 처리할 수 있다.

 

 

CGI (Common Gateway Interface)

CGI 역시 WAS처럼 웹 서버가 동적인 처리를 할 수 있게끔 하기 위해 만든 인터페이스(규약, 프로토콜)이다.

웹 서버로 온 요청을 동적으로 처리하기 위해, 외부 프로그램과 데이터를 주고받을 때의 입출력을 정의한 표준이다.

즉, 웹 서버가 CGI 규약에 맞게 데이터를 주고 받으며 외부 프로그램을 직접 실행해 동적인 데이터 처리를 하는 것이다.

이 CGI 표준에 맞게 만든 프로그램이 CGI 프로그램이다.

 

CGI vs WAS

CGI 프로그램 방식은 웹 서버를 외부 프로그램과 직접 연결하여, 웹 서버 위에서 외부 프로그램이 실행되며 동적인 요청을 처리하는 것이고, WAS는 웹 서버를 외부 프로그램을 웹 서버와 분리하여 WAS 위에서 실행하는 것이다.

 

 

 


 

참고

https://my-repo.tistory.com/20

https://gpffh1011.tistory.com/53

댓글