본문 바로가기
Backend

asgi vs wsgi

by 쭈돌s 2022. 3. 12.

CGI(Common Gateway Interface)는 외부의 애플리케이션과 웹서버와 연결을 할 때 사용하는 인터페이스다.

과거에는 정적파일(HTML)을 다운로드 하는게 거의 주였기 때문에 CGI같은 중계기가 필요 없었다.

하지만 웹으로 채팅, 거래, 업무공유등 Interaction이 많은 일들이 수행되면서 외부 애플리케이션을 호출이 필요하게 돼 CGI 같은 중계기가 생겨나게됨.

Java 진영에서는 Tomcat(Web Server + FastCGI) WAS를 사용한다.

반면 Python 진영에서는 이러한 WAS가 존재 하지 않아 WAS형태를 만들어 사용해야 한다. Python 에서 교통정리를 해줄 Gateway Interface 는 크게 2종류가 있다. WSGI, ASGI

WSGI (Web Server Gateway Interface)

  • 동기식 처리
  • 종류
    1. nginx, apache에서 내장 모듈로 제공하는 방식 (mod-wsgi, mod-python 등)
    2. Python Web App Server (gunicorn, cherrypy등)

ASGI (Asynchronous Server Gateway Interface)

  • 비동기식 처리
  • Websocket Protocol 지원, HTTP2.0 지원
  • 종류 : uvicorn

'Backend' 카테고리의 다른 글

Web Server, WSGI, Web Application Server  (0) 2022.03.12
Gunicorn  (0) 2022.03.12

댓글