왕초보를 위한 Python 2.7 12. 인터넷 12.7. CGI 12.7.1. 첫번째 CGI 스크립트

12.7.1. 첫번째 CGI 스크립트

 

다음과 같은 프로그램을 작성해서 C:\Program Files\Apache Group\Apache\cgi-bin에 hello.cgi라는 이름으로 저장해주세요.

#!C:/Python21/python.exe

print "Content-type: text/html\n"
print "<html>"
print "<body>"
print "Hello~"
print "</body>"
print "</html>"

다 하셨으면 아파치 웹 서버를 띄우고, 웹 브라우저에서 http://localhost/cgi-bin/hello.cgi를 요청해보세요.

어떤 결과가 나올까요?

그냥 Hello~라고만 나오죠?

웹 브라우저에서 소스 보기를 해보세요. 인터넷 익스플로러를 쓰신다면 <보기>-<소스> 메뉴를 선택하시면 됩니다. 소스가 보입니까? 이건 그냥 HTML이죠? 우리는 CGI 스크립트의 주소를 요청했는데, 웹 서버에서는 단순한 HTML 문서만 돌려주었군요.

왜 그럴까요?

그렇습니다. 웹 서버가 돌려준 HTML 문서는 알고보면 CGI 프로그램이 실행된 결과물이죠. 웹서버에게 hello.cgi에 대한 요청이 들어오면, 웹 서버에서는 그것을 파이썬 인터프리터에게 넘겨주고, 파이썬 인터프리터가 프로그램을 실행시키면, 웹서버가 그 결과물을 우리에게 돌려준 것입니다.

hello.cgi의 소스를 찬찬히 살펴볼까요?

#!C:/Python21/python.exe

CGI 스크립트는 언제나 스크립트를 실행할 파이썬 인터프리터의 위치를 #! 뒤에 적어주는 것으로 시작합니다. Linux에서라면 #!/usr/bin/python과 같이 되겠지요.

다음 줄부터는 보통의 파이썬 프로그램을 작성한다고 생각하시면 됩니다. 다만 출력이 인터넷을 통해 웹 브라우저에서 보여진다는 것을 유념하셔야겠지요.

print "Content-type: text/html\n"

이것은 HTML 형식의 문서를 전송하겠다는 뜻의 헤더를 써준 것입니다. 웹 브라우저에서 이 헤더를 보고 문서가 어떤 형식인지 판단해서, 뒤따라오는 본문을 문서의 형식에 맞게 보여주게 됩니다. 헤더의 끝에는 \n을 써서 한 줄을 띄워주었는데, 이것은 헤더와 본문 사이에 한 줄을 띄워야한다는 규칙을 지키기 위해서이지요.

나머지 부분은 척 보면 아시겠죠?

print "<html>"
print "<body>"
print "Hello~"
print "</body>"
print "</html>"

 

마지막 수정일 : 2012년 7월 1일 11:39:52 오전
  • Commented by 어라라 at 2012년 11월 4일 5:45:46 오후 [x]

    저기.. 로컬호스트에 연결이 안되는데요;;

이 름 :
홈페이지 :
비밀번호 :
검색구분 :
최근변경이력