2010년 11월 27일 토요일

[WEB] form 의 GET & POST 방식의 차이

 

 

 

 

 

 

 

 

웹 문서에서 아이디나 비밀번호 또는 다른 데이터 들을 서버측 으로 보낸 다음 수행이 되는 경우가 있다. 이때 문서에서 서버측 으로 데이터가 전달되는 방법이 2가지가 있는데 GET 방식과 POST방식이다. 각각의 방식들은 나름대로의 장단점을 가지고 데이터를 전달하는 역할을 한다.




GET 방식

1.웹 브라우저의 주소 입력란에서 아래와 같이 직접 입력하여도 데이터를 서버로 전송한다.(클라이언트로 부터의 데이터를 이름과 값이 겨합된 스트링 형태로 전달 하므로 각각 이름과 값은 “&”를 이용하여 결합한다.

ex) (http://localhost/chs/book/Request.jsp?Name=Michael&Depy=Computer)

2.기본적으로 데이터베이스에 대한 질의어 데이터와 같은 요청을 위한 정보를 전송할 때 사용

3.GET방식으로 보낼때는 같이 딸려가는 글자수에 제한이 있다(255자).

4.GET 방식을 사용하면 이를 초과하는 데이터가 절단된다.

5.GET 방식을 사용하면 데이터가 주소 입력란에 표시되므로 최소한의 보안도 유지되지 않는다.

6.GET 방식은 정보를 URL의 끝에 질의 문자열로서 서버로 보내어진다.

7.데이터를 쿼리 스트링(Query String)의 일부로써 전달한다.

8. 일반적인 HTTP 호출은 모두 GET 방식으로 이루어진다.

9.변수 넘기지 않는 일반 호출도 GET 이다.

10. 사용이 간편하다는 장점이 있다.

11.사용 예)

get 방식 예제

<HTML>

<HEAD><TITLE> get 방식 예제 </TITLE></HEAD>

<BODY><CENTER>

<FORM NAME="form1" ACTION="get_meth_view.asp" METHOD="get">

    이 름 : <INPUT TYPE="text" NAME="uname">

    메 일 : <INPUT TYPE="text" NAME="mail">

    <P></P>

    <INPUT TYPE="submit" VALUE="전송">

    <INPUT TYPE="reset" VALUE="다시">

</FORM></CENTER>

</BODY>

</HTML>

테스트 후 브라우저의 주소박스에 보여지는 URL은 다음과 같다.

http://localhost/object_asp/get_meth_view.asp?uname=seong+gigoo&mail=midibest@orgio.net




POST 방식

1.POST 방식은 HTTP 헤더에 숨겨져(인코드되어) 서버로 전송이 됩니다.

2.다음과 같이 브라우저의 주소창에는 실행 파일명만 나타납니다.

http://localhost/object_asp/post_meth_view.asp

3.일반적으로 HTML의 FORM을 이용해서 넘기는 방식입니다.

4.이 방식은 서버에 값을 넘기기 위해 만들어진 방식입니다.

5. 데이터베이스에 대한 갱신 작업과 같은 서버측에서의 정보 갱신 작업을 원할 때 사용

6.POST 방식을 사용하면 GET 방식에 비해 상대적으로 처리 속도가 늦어짐

7.클라이언트로부터의 데이터가 HTTP 헤더에 포함되어 전송

8.일정한 크기 이상의 데이터를 전송할 때에는 POST 방식을 사용

9.내부의 구분자가 각 파라미터(이름과 값)를 구분

10.클라이언트측에서 데이터를 인코딩 → 서버측에서 디코딩 클라이언트와 서버간에 상호 정의되어 있는 형식대로 값을 인코딩한 다음 서버로 전송

서버 : 전달된 스트링을 디코딩 → 각 파라미터를 구분 → 필요한 값들을 추출

11.사용 예)

파일명 : post_meth_vtest.htm

<HTML>

<HEAD>

<TITLE> POST 방식 예제 </TITLE>

</HEAD>

<BODY>

<CENTER>

<FORM NAME="form1" ACTION="post_meth_view.asp" METHOD="post">

    이 름 : <INPUT TYPE="text" NAME="uname">

   <BR>

    메 일 : <INPUT TYPE="text" NAME="mail">

  <BR><BR>

    <INPUT TYPE="submit" VALUE="전송">

    <INPUT TYPE="reset" VALUE="다시">

</FORM>

</CENTER>

</BODY>

</HTML>

출처 : Tong - bitworld님의 ♣ php/mysql통


==========================

<input type='hidden' name='mode' value='mode'>

 

 

 

 

 

[출처] - http://www.ezslookingaround.com/blog/tech/?no=1380

 

 

 

 

 

 

 

댓글 없음:

댓글 쓰기