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
다음은 위 양식의 실제 출력입니다. 이름과 성을 입력한 다음 제출 버튼을 클릭하여 결과를 확인합니다.
이름:성:제출
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를 사용합니다.
다음은 위 양식의 실제 출력입니다. 이름과 성을 입력하고 제출 버튼을 클릭하면 결과를 볼 수 있습니다.
이름:성:제출