1 분 소요


HTTP 메서드 - PUT, PATCH, DELETE

PUT

PUT /members/100 HTTP/1.1
Content-Type: application/json

{
    "username": "hello",
    "age": 20
}
  • 리소스를 대체
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 쉽게 이야기 하면 파일 복사 - 붙여넣기와 같음
  • 중요! 클라이언트가 리소스를 식별
    • 클라이언트가 리소스 위치를 알고 URI 지정 (GET의 특징)
    • POST와의 차이점

리소스가 있는 경우1

[클라이언트]

PUT /members/100 HTTP/1.1
Content-Type: application/json

{
    "username": "old",
    "age": 50
}

[서버] /members/100

{
    "username": "young",
    "age": 20
}

리소스가 있는 경우2

[서버] /members/100 (리소스 대체)

{
    "username": "old",
    "age": 50
}


리소스가 없는 경우1

[클라이언트]

PUT /members/100 HTTP/1.1
Content-Type: application/json

{
    "username": "old",
    "age": 50
}

[서버] /members/100 (이런 리소스는 없음)


리소스가 없는 경우2

[서버] /members/100 (신규 리소스 생성)

{
    "username": "old",
    "age": 50
}


주의! 리소스를 완전히 대체한다1

[클라이언트]

PUT /members/100 HTTP/1.1
Content-Type: application/json

{
    <!-- username 필드 없음 -->
    "age": 50
}

[서버] /members/100

{
    "username": "young",
    "age": 20
}

주의! 리소스를 완전히 대체한다2

[서버] /members/100 (리소스 대체)

{
    <!-- username 필드 삭제됨 -->
    "age": 50
}


PATCH

PATCH /members/100 HTTP/1.1
Content-Type: application/json

{
    "age": 50
}
  • 리소스 부분 변경

리소스 부분 변경1

[클라이언트]

PATCH /members/100 HTTP/1.1
Content-Type: application/json

{
    <!-- username 필드 없음 -->
    "age": 50
}

[서버] /members/100

{
    "username": "young",
    "age": 20
}

리소스 부분 변경2

[서버] /members/100 (리소스 부분 변경)

{
    "username": "young",
    "age": 50       <!-- age만 50으로 변경 -->
}


DELETE

DELETE /members/100 HTTP/1.1
Host: localhost:8080
  • 리소스 제거

리소스 제거1

[클라이언트]

DELETE /members/100 HTTP/1.1
Host: localhost:8080

[서버] /members/100

{
    "username": "young",
    "age": 20
}

리소스 제거2

[서버] /members/100 (리소스 제거!)


<출처 : 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식(김영한)>

태그:

카테고리:

업데이트:

댓글남기기