둘 다 HTTP 프로토콜을 이용하여 서버에 무언가를 요청할 때 사용하는 방식이지만
때에 따라 둘의 특징에 맞게 이해하여 기술의 목적에 맞는 용도 사용을 위해 둘 간의 차이를 이해할 필요가 있다.
GET
- HTTP Request Message의 Header 부분의 url에 담겨 전송된다.
- 그래서 url상 ?뒤에 데이터 붙어 request를 보낸다
ex) message?id=101
- 이러한 방식은 url이란 공간에 담겨가기에 데이터 크기가 제한적이다.
- 보안이 필요한 데이터는 그대로 노출되기에 적절치 않다.
POST
- HTTP Request Message의 Body 부분에 데이터가 담겨 전송된다.
- 그래서 바이너리 데이터 요청 시, POST방식으로 보내야 하는 것처럼 데이터 크기가 GET방식보다 크고 보안면에서 낫다. (굳이 둘을 비교하자면..)
언제 어떻게?
- GET은 서버에서 어떤 데이터를 가져와서 보여주거나 하는 용도
(서버의 값이나 상태를 변경하지 않는다./ SELECT 느낌이다.)
- POST는 서버의 값이나 상태를 변경하기 위해 또는 추가하기 위해 사용한다.
- GET 방식 요청은 브라우저에서 Caching 할 수 있다.
- 그래서 POST 방식으로 요청해야할 것을 보내는 데이터 크기가 작고 보안적 문제가 없다는 이유로 GET을 쓰면 기존 Caching된 데이터가 응답될 수 있다.
(목적에 맞게 쓰자)