리소스(엔티티)를 식별하는 기준으로 api를 구현해야 한다!
URI는 리소스만 식별하게끔 하자!
리소스와 해당 리소스를 대상으로 하는 행위를 분리하자!
- GET
- 조회
- 서버에 전달하고 싶은 데이터는 쿼리스트링으로 ~
- 웬만하면 메시지 바디 X
 
- PUT
- POST
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버는 요청 데이터를 처리
- 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행
 
- 주로 신규 리소스 등록, 프로세스 처리
- 새 리소스 생성(등록)
- 요청 데이터 처리(ex. 주문에서 결제완료 → 배달 시작 → 배달완료 처럼 단순히 값 변경을 넘어 프로세스의 상태가 변경되는 경우, POST의 결과로 새로운 리소스가 생성되지 않을 수도 있음.) → 서버에서 큰 변화는 POST
- 다른 매서드로 처리하기 애매한 경우(JSON으로 조회 데이터를 넘겨야하는데, GET은 메시지 바디를 안쓰니까 POST 메시지바디에 조회용 데이터를 넘기자!)
- POST는 메시지를 넘겨서 하는 무언가를 모두 할 수 있다! (조회는 GET 쓰자)
 
- 리소스를 대체
- 있으면 대체
- 없으면 생성
- 쉽게 이야기해서 덮어버림
 
- 클라이언트가 리소스를 식별! → 중요!
- 클라이언트가 리소스 위치를 알고 URI 지정
- POST와의 차이점!!!!
 
 
- PATCH
- DELETE
아래 그림은 PUT의 주의할점!
저렇게 나이만 바꾸고 싶어서 age만 보내면 username 필드가 사라짐! → 덮어버리는 것임을 주의! → 부분 바꾸고싶으면 PATCH써라 → PUT은 덮어쓰려는 의도!!
