HTTP 웹 [기본] HTTP 메서드 2

신재원·2023년 1월 17일
1

HTTP

목록 보기
5/18

PUT

  • 리소스를 대체
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 쉽게 이야기해서 기존에 있는거를 덮어버림
      • 예) username : shin , age : 20 에서
        age : 22를 보내면, username 필드 삭제, age :22로 완전히 대체한다.
  • 중요! 클라이언트가 리소스를 식별
    • 클라이언트가 리소스 위치를 알고 URL 지정
    • POST와 차이점 (리소스의 전체 위치를 알고있어야된다)

PATCH

  • 리소스의 "부분" 변경

DELETE

  • 리소스 제거

HTTP 메소드의 속성

    1. "안전"
    • 호출해도 리소스를 변경하지 않는다. (GET방식이 대표적으로 안전)
    1. "멱등"
    • 한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다
      • 멱등 메서드
        • GET : 한 번 조회하든, 두번 조회하든 같은결과가 조회된다.
        • PUT : 결과를 대체한다. 따라서 같은 요청을 여러번해도 최종결과는 똑같다.
        • DELETE : 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다.
        • POST : 멱등이 아니다. 두번 호출하면 같은 결제가 중복해서 발생한다.

멱등 예시

Q : 재요청 중간에 다른 곳에서 리소스를 변경해버리면?

  • 사용자 1: GET -> username : A , age : 20
  • 사용자 2: PUT -> username : A , age : 30
  • 사용자 1: GET -> username : A , age : 30 -> 사용자 2의 영향으로 바뀐 데이터 조회
  • A : 멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지는 고려하지않는다.

    1. "캐시 가능"
    • GET, HEAD, POST, PATCH 캐시가능
      • 실제로는 GET, HEAD 정도만 캐시 사용
      • POST, PATCH는 구현이 쉽지않음

0개의 댓글