끄적대기

WAS : Web Application Server

alpha-star 2022. 3. 24. 02:47
728x90
반응형

˙WAS : Web Applicaion Server 

 ▷ Web Server

   Client에서 HTTP 요청을 받고 HTML 등과 같은 페이지(JavaScript 등)를 정적으로 처리하여 반환하는 정적인 서버(Apache, Nginx 등)이다.


 ▷ CGI : Common Gateway Interface

   정적인 서버를 동적으로 만들기 위한 요소로, 요청받은 내용을 외부의 프로그램과 연결만 지원하고, 이외 프로그램은 별도의 Web Server가 실행한다. Web Server에 들어온 Request 요청을 외부와 연결하여 요청에 대한 내용을 처리하도록 지원한다. WAS와의 차이는 실행하는 주체의 차이로, CGI는 다수의 요청을 처리하기에 상대적으로 불리하다.

 

 ▷ WSGI : Web Server Gateway Interface

   Python(Django) 전용 WAS로, Nginx, Apache의 Web Server는 정적인 항목(파일, 이미지 등)에 대한 처리를 수행하고, 동적인 항목(메일, DB 처리 등)은 Django, Flask를 이용하여 만든 Web Application이 처리한다. 즉, Ngingx와 Django 간의 Interface를 정의한 것이 WSGI, 구현한 것이 uWSGI이다.

 

 - 정적 : Client -> Web Server

 - 동적 : Client -> Web Server -> Web Application Server -> 외부 프로그램

 - WSGI : Client -> Web Server -> WSGI -> 외부 프로그램

 

 ▷ WAS : Web Application Server

   Web Server Nginx와 Web Application Django 간의 연결과 중계를 위한 WSGI가 존재한다. Ngingx는 Python에 대한 부분을 알 수 없기 때문에 uWSGI는 HTTP의 요청에 대하여 알 수 있도록 변환한다. 즉, WAS = Web Server + CGI로 WAS도 정적인 데이터에 대한 처리가 가능하다. Server와 Application을 분리하는 것이 효율적이기 때문에 규모가 클수록 분리하는 것이 효율적일 수 있다.

 

˙Web Server & Web Application Server

 ▷ Web Server

   정적인 데이터만 처리하는 Server로, 단순 HTML 또는 이미지와 같은 리소스를 제공한다면, Web Server를 통하는 것이 더욱 빠르고 안정적이다.


 ▷ Web Application Server

   동적인 데이터를 처리하는 Server로,  데이터베이스(DB)와 연결되어 데이터를 주고받거나 조작이 필요한 경우에 사용한다. 접속자가 많은 서비스인 경우 처리량이 다른 요소에 비하여 효율적이다.

 

728x90
반응형