▶ CGI, GET, POST
알아두면 유용한 정보입니다. 간략히 표현해봤습니다. 해당 항목에 대해 보다 자세히
알아보고 싶은 사람은 각종 검색 엔진 등을 이용해 찾아보세요. ^^;
▷ CGI(Common Gateway Interface)
CGI 프로그램이란 말 많이 들어보셨죠? 하지만 CGI는 프로그램이 아닙니다. 예전에
CGI 확장자의 프로그램은 PERL로 제작된 것이 대부분이었죠. 그래서 잘못 생각하고
있는 분들이 계신 것 같아요. CGI는 웹서버와 웹프로그램의 연결 역할을 합니다.
Interface라는 단어는 많이 보셨죠? 예를 들어볼까요? - 대표적인 UI(User
Interface)로는 셀 상태에서의 명령어 입력 형태인 CUI(Character User Interface)와
윈도우처럼 아이콘 등을 이용하는 GUI(Graphic User Interface)가 있다.
어렵게 생각하지 마세요. CGI는 프로그램이 아닙니다. 다른 프로그램(여기에서는
PHP, PERL, ASP, JSP, C 등으로 제작된 다른 웹 프로그램이겠죠?)을 연결해주는
매개체 역할만을 합니다. (정보 전달, 결과 전달 등)
이를 더욱 간단히 표현해 보면 다음과 같습니다.
▷ 일반 HTML의 경우
① 웹브라우저 --(자료 요청)--> 웹서버
② 웹브라우저 <--(자료 수신)-- 웹서버
▷ 웹 프로그램의 경우
① 웹브라우저 --(자료 요청)--> 웹서버
② 웹서버 --(CGI 호출)--> 웹프로그램
③ 웹서버 <--(CGI 결과반환)-- 웹프로그램
④ 웹브라우저 <--(자료 수신)-- 웹서버
CGI의 기본적인 환경 변수는 다음과 같습니다. 직접 찾아보도록 하세요. ^^;
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
HTTP_ACCEPT
HTTP_ACCEPT_LANGUAGE
HTTP_REFERER
HTTP_USER_AGENT
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
▷ GET, POST
제로보드를 예로 들 경우 글쓰기 버튼을 눌렀을때 사용자가 입력해야 하는 정보로는
이름, 이메일 주소, 홈페이지 주소, 제목, 본문, 암호 등이 있습니다. 이 정보를
웹서버 측으로 보내는 방법이 크게 두가지로 구분됩니다. 바로 GET과 POST입니다.
http://nzeo.com/bbs/zboard.php?id=main_freeboard
위의 주소에서 ? 이후의 id=main_freeboard가 GET 방식의 정보 전달의 대표적인
예입니다. 이 경우 보낼 수 있는 정보의 양이 크게 제한됩니다. (최대 255 바이트)
여기서 id는 변수명, main_freeboard는 값입니다. 위의 CGI 환경 변수 중
QUERY_STRING에 그 값이 할당됩니다. 그리고 예에서 보듯 변수와 값을 모두가
볼 수 있다는 담점까지 가지고 있습니다.
http://nzeo.com/bbs/member_join.php?group_no=1
(※ 테스트삼아 가입하는 일이 없도록 합시다.)
위의 주소를 열어보면 회원가입폼이 나옵니다. 여기에 입력되는 정보는 POST
방식으로 전달되게 됩니다. 이 정보들은 GET 방식과 달리 주소 표시줄에 변수와
값이 보이지 않으며 많은 값을 보낼 수 있습니다. 보안을 필요로 하는 부분에
있어 이 POST 방식을 많이 이용합니다. (암호, 주민등록번호 등의 정보 전달)
다시 한번 간략히 결론을 내리자면 GET 방식은 주소 표시줄에 변수와 값 등 전달된
정보가 보이는 형태로 그 크기가 제한적이며, POST 방식은 전달된 정보가 보이지
않으며 그 크기에 거의 제한을 받지 않습니다.
* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:07)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >> 웹 프로그래밍
* 이동후 위치 : 웹 공부 >>
* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:12)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍