2012-02-07 2 views
4

이 질문은 여기 계몽 된 사람들 대부분에게 정말 어리석은 것처럼 보일 수 있습니다. 그러나 나는 정상적인 Google 검색으로 답변을 찾을 수 없으므로이 질문에 답하고있다. 나는 CGI가 언어에 구속력이 없다는 것을 안다. 이후로 나는 웹 개발이 아니기 때문에 나는 웹 서버가 어떤 컴파일러가 어떤 cgi 스크립트를 가지고 있는지를 어떻게 알 수 있는지 궁금해했다. 그중 하나는 파이썬 스크립트이고 다른 하나는 C 일 수도있다.CGI는 컴파일러를 어떻게 인식합니까?

+0

웹 서버는 일반적으로 C 코드를 직접 실행할 수 없다는 점에 유의해야합니다. 그들은 스스로 C를 컴파일하지 않는다. 오히려 웹 서버가 CGI 스크립트로 CGI를 활용하려면 C가 사용자에 의해 컴파일되어야합니다. ([예외적 인 경우가 있습니다] (http://bellard.org/tcc/tcc-doc.html#SEC3), 보통은 C를 수동으로 컴파일해야합니다.) – icktoofay

답변

1

CGI에는 아무 것도 없습니다. 각 웹 서버는 다르게 수행합니다. 예를 들어, Apache는 요청을 처리하고, 필터링하고, 처리기로 라우팅하는 방법을 지정하기 위해 전체 configuration language을 가지고 있습니다. 반대로, 파이썬 simple HTTP server에는 CGI 스크립트에 대한 개념이 없으며 요청을 처리하기 위해 파이썬 객체에 대한 메소드를 호출하기 만합니다.

편집 :

CGI는 일반적으로 RFC 3875을 의미한다. 이 문서에서는 웹 서버가 로컬 파일 시스템의 파일을 URL과 연결할 필요가 없습니다. 스크립트에 대해 얘기에 가장 근접

비트는

3.4입니다. 실행

스크립트는 시스템 정의 방식으로 호출됩니다.

기본적으로 서버는 서버가 스크립트를 요청할 때 서비스 요청과 같은 다른 작업을 원할 경우 위임 할 수 있습니다.

+0

CGI 스크립트가 의미하는 것입니까? 일반 텍스트 파일과 적절한 컴파일러를 식별하는 책임은 전적으로 웹 서버에 있습니다. 나는 파이썬에서 세빈 라인이 이것과 관련이 있을지도 모른다고 생각했다. D –

+0

@Jack_of_All_Trades, 나는 RFC 3875에 관한 편집을했고, 서버에 얼마나 많은 위도를 부여했는지에 대해 고찰했다. –

2

CGI 스크립트는 운영 체제에서 실행됩니다.

웹 서버는 일반적으로 파일이 특정 디렉토리 (종종 cgi-bin)에 있고 실행 가능 비트가 설정된 경우 CGI 스크립트라고 가정합니다.

웹 서버가 파일이 CGI 스크립트라고 생각하면 fork s, 일부 환경 변수 및 기타 작은 것들을 설정 한 다음 운영 체제에 실행하도록 요청합니다.

운영 체제에서 직접 실행할 수 있는지 여부를 확인하고 가능한 경우 운영 체제에서 확인합니다. 그렇지 않으면 hashbang을 찾고이를 사용하여 스크립트를 실행합니다.

관련 문제