CGI(Common Gateway Interface)

Python의 CGI(Common Gateway Interface)는 웹 서버와 외부 프로그램 간의 통신을 위한 표준 인터페이스.
Python에서 CGI를 사용하면 동적 웹 콘텐츠를 생성할 수 있다.

CGI
https://www.geeksforgeeks.org/what-is-cgi-in-python/

주요 특징

  1. 웹 서버와 Python 프로그램 간의 통신 방식을 정의합니다.
  2. 클라이언트의 요청을 처리하고 동적으로 HTML 페이지를 생성합니다.
  3. 환경 변수와 표준 입출력을 통해 데이터를 주고받습니다.

프로그램의 구조

  1. 셔뱅 라인: #!/usr/bin/python3
  2. 필요한 모듈 임포트: import cgi
  3. CGI 필드 스토리지 객체 생성: form = cgi.FieldStorage()
  4. HTTP 헤더 출력: print(‘Content-type: text/html\n’)
  5. HTML 콘텐츠 생성 및 출력

장점

  • 간단하고 이해하기 쉬운 구조
  • 다양한 프로그래밍 언어 지원
  • 웹 서버와 독립적으로 동작

단점

  • 요청마다 새로운 프로세스를 생성하여 리소스 사용량이 많음
  • 대규모 애플리케이션에서는 성능 저하 발생 가능

예시 코드

1
2
3
4
5
6
7
8
#!/usr/bin/python3
import cgi

form = cgi.FieldStorage()
name = form.getvalue('name', 'World')

print('Content-type: text/html\n')
print(f'<html><body><h1>Hello, {name}!</h1></body></html>')

이 코드는 사용자의 이름을 입력받아 인사말을 출력하는 간단한 CGI 프로그램.

Python의 CGI는 간단한 웹 애플리케이션 개발에 적합하지만, 현대의 복잡한 웹 애플리케이션에는 WSGI나 ASGI와 같은 더 효율적인 인터페이스가 선호된다.


참고 및 출처