Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python CGI 프로그래밍에서 GET과 POST의 차이점은 무엇입니까?

<시간/>

GET 및 POST 메소드

브라우저에서 웹 서버로, 그리고 궁극적으로 CGI 프로그램으로 일부 정보를 전달해야 하는 상황을 많이 겪었을 것입니다. 대부분의 경우 브라우저는 이 정보를 웹 서버에 전달하는 두 가지 방법을 사용합니다. 이러한 메소드는 GET 메소드와 POST 메소드입니다.

GET 메소드를 사용하여 정보 전달

GET 메서드는 페이지 요청에 추가된 인코딩된 사용자 정보를 보냅니다. 페이지와 인코딩된 정보는 ? 다음과 같은 문자 -

https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2

GET 방법은 브라우저에서 웹 서버로 정보를 전달하는 기본 방법이며 브라우저의 Location:box에 나타나는 긴 문자열을 생성합니다. 서버에 전달할 암호 또는 기타 민감한 정보가 있는 경우 GET 방법을 사용하지 마십시오. GET 메서드에는 크기 제한이 있습니다. 요청 문자열에는 1024자만 보낼 수 있습니다. GET 메소드는 QUERY_STRING 헤더를 사용하여 정보를 전송하고 QUERY_STRING 환경 변수를 통해 CGI 프로그램에서 액세스할 수 있습니다.

URL과 함께 키와 값 쌍을 연결하여 정보를 전달하거나 HTML

태그를 사용하여 GET 메소드를 사용하여 정보를 전달할 수 있습니다.

간단한 URL 예제 - 메서드 가져오기

여기에 GET 메소드를 사용하여 두 개의 값을 hello_get.py 프로그램에 전달하는 간단한 URL이 있습니다.

/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

아래는 웹 브라우저에서 제공한 입력을 처리하기 위한 hello_get.py 스크립트입니다. 전달된 정보에 매우 쉽게 액세스할 수 있도록 하는 cgi 모듈을 사용할 것입니다. −

#!/usr/bin/python# CGI 처리를 위한 모듈 가져오기import cgi, cgitb# FieldStorageform의 인스턴스 생성 =cgi.FieldStorage()# fieldsfirst_name =form.getvalue('first_name')last_name =form.getvalue에서 데이터 가져오기 ('last_name')print "Content-type:text/html\r\n\r\n"print ""print ""print "안녕하세요 - 두 번째 CGI 프로그램" print ""print ""print "

안녕하세요 %s %s

" % (first_name, last_name)print ""print ""

이렇게 하면 다음과 같은 결과가 생성됩니다. -

안녕하세요 ZARA ALI

간단한 FORM 예제 - GET 메소드

이 예제는 HTML FORM과 submit 버튼을 사용하여 두 개의 값을 전달합니다. 이 입력을 처리하기 위해 동일한 CGI 스크립트 hello_get.py를 사용합니다.

이름: 
성:<입력 유형 ="제출" 값 ="제출" />

다음은 위 양식의 실제 출력입니다. 이름과 성을 입력한 다음 제출 버튼을 클릭하여 결과를 확인합니다.

이름:성:제출

POST 방법을 사용하여 정보 전달

CGI 프로그램에 정보를 전달하는 일반적으로 보다 안정적인 방법은 POST 방법입니다. 이것은 GET 메소드와 정확히 같은 방식으로 정보를 패키징하지만, ? URL에서 별도의 메시지로 보냅니다. 이 메시지는 표준 입력의 형태로 CGI 스크립트에 들어옵니다.

다음은 GET 및 POST 메서드를 처리하는 동일한 hello_get.py 스크립트입니다.

#!/usr/bin/python# CGI 처리를 위한 모듈 가져오기import cgi, cgitb# FieldStorageform의 인스턴스 생성 =cgi.FieldStorage()# fieldsfirst_name =form.getvalue('first_name')last_name =form.getvalue에서 데이터 가져오기 ('last_name')print "Content-type:text/html\r\n\r\n"print ""print ""print "안녕하세요 - 두 번째 CGI 프로그램" print ""print ""print "

안녕하세요 %s %s

" % (first_name, last_name)print ""print ""

HTML FORM과 submit 버튼을 사용하여 두 개의 값을 전달하는 위와 같은 예를 다시 살펴보겠습니다. 이 입력을 처리하기 위해 동일한 CGI 스크립트 hello_get.py를 사용합니다.

이름:
성:<입력 유형 ="제출" 값 ="제출" />

다음은 위 양식의 실제 출력입니다. 이름과 성을 입력하고 제출 버튼을 클릭하면 결과를 볼 수 있습니다.

이름:성:제출