해당 글은 인프런 김영한님의 영상을 보고 정리한 글입니다. 출처
클라이언트가 서버에게 요청할 때 기대하는 행동
GET -> 서버에게 무언가를 달라고 요청
POST -> 데이터를 서버에게 주면 등록/처리와 같은 것을 해달라고 요청
리소스 조회
1.요청 데이터 처리/등록에 주로 사용
2.메시지 바디를 통해 서버로 요청데이터를 전송하고 이를 처리
3.다른 메서드로 처리하기 애매한 경우에도 사용 -> JSON으로 조회한 데이터 넘겨야 하는데 GET 메서드를 사용하기 힘든 경우 -> GET은 메시지 바디에 데이터를 넣는것이 좋지 않고 지원하지 않을 수 있기 때문
보내는 리소스로 대체,해당 리소스 없으면 생성 -> 덮어쓰기
리소스의 특정 부분 변경
EX) 회원 정보중 이름만 변경
리소스 삭제
호출해도 리소스를 변경하지 않는다.
해당 리소스가 변하는지만 고려 -> 로그가 쌓여 장애 발생하는 경우 고려x
몇번 호출하든 결과가 같다
BUT 중간에 외부요인으로 요청이 바뀌는 경우는 고려X -> 첫번째 요청과 두번째 요청의 데이터가 다른경우
GET : 몇번 호출하든 같은 결과 조회 -> 멱등
PUT : 같은 요청을 반복해도 똑같은 데이터로 대체된다(덮어쓰기). -> 멱등
DELETE : 같은 DELETE 요청을 반복해도 삭제된 결과는 동일하다 -> 멱등
POST : 결재하는 경우 여러번 호출시 같은 결제가 여러번 중복되서 발생한다 -> 멱등X
멱등 활용 -> 서버가 정상 응답 주지 못했을 경우 클라이언트가 동일한 요청을 해도 된느 경우 사용
응답 결과 리소스를 캐시해서 사용해도 되는지
GET,HEAD,POST,PATCH는 캐시가 가능하나 실제로는 GET, HEAD 정도만 캐시로 사용