즉,Get은 서버에서 어떤 데이터를 가져와서 보여줄때 사용합니다. 어떤 값이나 내용, 상태등을 바꾸지 않는 경우에 사용을 하는것입니다. 이에비해,Post는 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다.
게시판으로 예를 들자면, 글의 내용에 대한 목록을 보여주는 경우나, 글의 내용을 보는 경우는Get에 해당합니다. 그리고 글의 내용을 저장하고, 수정할때에Post를 사용하는 것이죠.
사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.
자, 먼저 GET,POST는 HTTP의 메소드로 REST 규칙을 지키면서 브라우저와 서버간 통신을 가능하게 하는 방법입니다.
그럼 GET은 무엇이냐 서버에서 어떤 데이터를 가져와서 보여줄때 사용하고 POST는 서버상의 데이터 값과 상태를 바꾸기 위해서 사용합니다. 김밥 천국으로 본다면 메뉴판을 GET하고 내가 먹은 영수증을 POST 한다고 볼 수 있습니다.
GET의 조심해야할 부분은 파라미터에 내용이 노출되어 기록이 남기 때문에 민감한 데이터를 다룰 땐 사용해서는 안되고
POST는 반대로 캐시,브라우저, 북마크 기록이 남지 않습니다.
추가로 Idempotent 멱등성이란 뜻을 띠며 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질로 여기서 GET이 Idempotent하도록 설계되었다는 것은 GET으로 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 한다는 것을 의미합니다. 반대로 POST는 Non-idempotent하기 때문에 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있습니다.이에 따라 POST는 서버의 상태나 데이터를 변경시킬 때 사용됩니다.