본문 바로가기

프로그래머/Python

Python - CGI | 생활코딩 강의 복습 | 프로그래밍 공부

* 이 포스팅은 생활코딩 강의를 들으며 내용을 정리한 것이며, 

모든 내용은 https://opentutorials.org/ 에서 보실 수 있습니다.*


웹브라우저가 데이터를 전송하면, 웹서버가 CGI 어플리케이션을 호출하고,

사용자가 요청한 정보를 CGI 어플리케이션에게 준다.

CGI 어플리케이션이 그 정보를 참고해 아웃풋을 출력하면,

출력된 정보들을 웹서버가 받고, 웹브라우저가 응답해준다.


그래서 웹서버와 CGI 어플리케이션 사이에는 서로 응답할 수 있는,

약속과 같은 것이 존재해야 한다.

웹서버의 종류는 아주 많고, 

CGI 어플리케이션을 만들 수 있는 언어의 종류도 많기 때문이다.


둘 사이의 표준화된 약속이 CGI(Common Gate Interface)이다.


cgi.test()를 이용하면, 웹서버가 파이썬 어플리케이션에 주는 정보를 출력할 수 있다.

localhost/cgi_env.py로 들어가보자.



주소에 ?id=HTML이라고 쿼리 스트링을 주게 되면,

실제로 query_string의 값에 의해서 id=HTML이 들어와 있다.



확장자를 php로 가져가보자.

똑같이 실행해보면,



마찬가지로 형식은 다르지만, 쿼리 스트링 뒤에 id=HTML이 들어가 있다.

CGI의 핵심은 웹서버가 사용자의 요청을 받았을 때, 

약속되어 있는 이름의 데이터를 환경변수라는 형태로 전달해주는 것이다.

즉, CGI는 언어와는 상관 없이 웹서버와 어플리케이션 간의 약속이다.