
get은 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 method입니다. 즉,서버에서 어떤 데이터를 가져와서 보여줄때,값이나 내용, 상태 등을 바꾸지 않는 경우에 사용합니다.
post는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는데 사용되는 method입니다. 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다.
GET 과 POST 의 차이점
사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.
요청에 body 유무 : GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.
멱등성 (idempotent) : GET 요청은 멱등이며, POST는 멱등이 아니다.
캐싱(chaching): GET은 캐싱이 가능하고, POST는 캐싱이 안된다고 보면 된다.
PUT은 폴더에 파일을 넣는다고 생각하면 이해가 쉬운데, 이미 해당 리소스가 있으면 완전히 대체, 없으면 새로 작성하는 메소드입니다. "수정"이 아닌 덮어쓰기의 개념입니다. 클라이언트가 리소스를 식별하여 구체적인 리소스의 URL을 알고 있습니다.
delete 리소스를 부분 변경하는 메소드입니다. 해당 필드만 부분 변경이 가능하고, 일부 지원되지 않는 서버의 경우에는 POST로 사용합니다.