Loading

블로그채널

Search !

[PHP] 강좌 #20 GET POST 장점 단점 비교 및 차이점


GET, POST 장점 단점 비교 및 차이점

우리는 클라이언트에서 서버로 데이터를 보낼 때 GET과 POST 두 가지 방법을 살펴보았습니다. 어떤 경우 GET을 쓰고 어떤 경우 POST를 사용할까요?

 

먼저 비교를 위해 두 메소드의 URL 결과 값을 살펴보겠습니다.

1. GET 메소드 URL 결과

http://yourweb.com/demo_form.php?name1=value1&name2=value2


2. POST URL 결과

http://yourweb/demo_form.php

 

3. POST 요청 HTTP 메시지 BODY  

POST /demo_form.php HTTP/1.1
Host: yourweb.com
name1=value1&name2=value2

 

GET 메소드는 입력했던 모든 내용이 URL에 결과로 나타납니다. 패스워드처럼 보이지 말아야할 정보값이 있을 경우 POST를 선택하는 것이 좋습니다. POST는 결과 URL에 name과 value값이 없고 HTTP 메시지 BODY안에 name과 value 및 host 이름 등이 포함되어 있습니다.


URL에 모든 정보를 담을 수 없습니다. URL 크기에는 한계가 있기 때문에 데이타가 길거나 클 경우 GET 메소드를 사용하는 것이 좋지 못합니다. URL이 길게 될 경우 서버측에서 "Request-URI Too Long The requested URL's length exceeds the capacity limit for this server."라는 메시지를 보내게 됩니다. 게시물을 올리는 용도로 어울리지 않겠네요.

 


그러면 POST를 항상 써야하느냐? 그렇지는 않습니다.  POST 메소드로는 세부 정보를 가지는 주소값을 표현할 수 없습니다. URL를 효율적으로 사용할 수 없습니다. 다음과 같은 주소가 있다고 가정하겠습니다.

 

http://yourmlb.com/mbs/articleV.php?bbs=mlbtown&no=123

 

게시판은 mlbtown이고 글번호는 123번을 말합니다. GET 메소드는 이런 정보를 모두 주소에 담을 수 있습니다. 하지만 POST에는 이런 정보를 넣을 수 없으므로 검색 결과값을 링크하는데 문제가 생길 수 있습니다. 고정적인 주소로 쓸 수 있다면 GET 메소드를 사용하는 것이 좋습니다.

 

 

[PHP] 강좌 #20 GET POST 장점 단점 비교 및 차이점

[PHP] 강좌 #20 GET POST 장점 단점 비교 및 차이점

 

 

GET, POST 장점 단점 비교 및 차이점 정리 

 

1. SELECT 기능을 원한다면 GET 메소드, UPDATE 기능을 원한다면 POST 메소드


2. 검색 결과 등 고정적인 주소 및 링크 주소로 사용될 수 있다면 GET 메소드를 사용 


3. 정보를 담을 URL 길이(최대 2048자)는 한계가 있고 해결하고 싶다면  POST 메소드를 사용


4. POST 메소드를 쓰면 정보를 숨길 수 있다. 하지만 SSL(Secure Sockets Layer)을 이용하지 않는다면  뚫리는 것은 마찬가지이다.


5. GET은 캐시가 남아있어 전송 속도가 빠르고 POST는 캐시가 남지 않아 보안적인 면에서 유리


6. GET은 브라우저 히스토리에 파라미터가 남고 POST는 저장되지 않는다.


7. GET은 ASCII 캐릭터만 허용하나 POST는 한계가 없다. POST는 바이너리 데이터가 허용된다. 따라서 파일 입출력을 위해 POST 메소드가 이용된다.

 

GET POST 시리즈는 PHP 강좌 #21에서 계속됩니다.

 

 

[Copyright ⓒ 블로그채널 blogCHANNEL 무단전재 및 재배포 금지]