문제

Python CGI가받은 HTTP 요청을 어떻게 알 수 있습니까? 머리와 얻을 수있는 다른 행동이 필요합니다.

감사!

도움이 되었습니까?

해결책

import os

if os.environ['REQUEST_METHOD'] == 'GET':
    # blah

다른 팁

이것은 귀하의 질문에 대한 직접적인 답이 아닙니다. 그러나 당신의 질문은 잘못된 방식으로 일하는 것에서 비롯됩니다.

Python CGI 스크립트를 작성하지 마십시오.

a mod_wsgi 신청. 더 나은 것은 파이썬 웹 프레임 워크를 사용하는 것이 좋습니다. 수십 명이 있습니다. 같은 것을 선택하십시오 Werkzeug.

WSGI 표준 (설명 PEP 333)는 웹 요청에서 물건을 찾기가 훨씬 쉽게 만듭니다.

mod_wsgi 구현은 CGI보다 빠르고 안전합니다.

웹 프레임 워크는 자신의 CGI 스크립트 또는 MOD_WSGI 응용 프로그램을 작성하는 것보다 간단합니다.

Get과 Head를 구별 해야하는 이유는 무엇입니까?

일반적으로 당신은 구별해서는 안되며 헤드 요청을 얻는 것처럼 취급해야합니다. 헤드 요청이 Get과 동일한 헤더를 반환하기위한 것이기 때문입니다. 유일한 차이점은 응답 내용이 없다는 것입니다. 응답 내용이 없다고해서 더 이상 유효한 컨텐츠 길이 헤더 또는 응답 내용에 의존하는 다른 헤더를 반환 할 필요가 없다는 것을 의미하지는 않습니다.

다양한 사람들이 당신을 가리키고있는 mod_wsgi에서는 실제로 머리에서 요청 방법을 의도적으로 변경하여 특정 사례를 통해 머리를 다르게 대우하는 사람들을 대상으로합니다. 이 작업이 수행되는 특정 사례는 Apache 출력 필터가 등록되는 곳입니다. 이 경우에 수행 된 이유는 출력 필터가 응답 내용을 볼 수 있고 해당 추가 응답 헤더를 생성 할 수 있기 때문입니다. 헤드 요청에 대한 응답 내용을 생성하지 않기로 결정한 경우, 컨텐츠의 출력 필터를 박탈 당하며 추가 된 헤더는 GET 요청에서 반환 될 내용에 동의하지 않을 수 있습니다. 이것의 최종 결과는 캐시와 브라우저의 작동을 할 수 있다는 것입니다.

이 경우 출력 필터도 여전히 추가 할 수 있으므로 Apache 뒤에있는 CGI 스크립트에 대해서도 동일하게 적용될 수 있습니다. CGI 스크립트의 경우 사용자가 어리석은 사람을 보호하고 헤드 요청을 위해 다르게 일을하는 것은 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top