PUT
- 리소스를 대체
- 리소스가 있으면 완전히 대체
- 리소스가 없으면 생성
- 쉽게 이야기해서 덮어버림
- 그냥 쉽게 말하자면 파일일 붙였을 때 만약 똑같은거 있으면 대체한다. 그거랑 비슷하다./
- 중요! 클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 알고 URI 지정
- POST와 차이점: PUT은 클라이언트가 구체적인 리소스 경로를 다 안다. 그 리소스 경로 위치를 다 알고 URI를 지정하는 겁니다. 이게 POST와 큰 차이점입니다. POST는 클라이언트가 /members에 나오면 100번에 만들지 200번에 만들지 모른다. PUT 경우에는 딱 나는 /members의 100번 자리에 넣을거야. 그러면 그렇게 리소스를 식별합니다.
만약 리소스가 있어요. 클라이언트는 /members의 100번 자리에 넣고 싶어서 거기에 PUT을 해줘요. 근데 이미 서버에 /members 100번 자리에 이미 리소스가 있어요.
그러면 정보가 날라가면 이 리소스가 대체가 됩니다.
리소스가 없을 경우에는, 그냥 아까전처럼 원하는 위치에 정보를 PUT을 이용해서 보낸다.
정보가 도착했는데, 리소스가 없으니 신규 리소스를 생성해준다.
중요한것!
리소스를 완전히 대체한다는 점입니다. 만약 자신이 위 사진처럼 username은 그대로 놔두고 나이만 바꾸고 싶어서 age를 50으로 지정하고 PUT을 해준다.
만약 그렇게 되면, "age":50이라는 정보만 와서 username 필드는 삭제가 되버립니다. 그래서 리소스 부분만 변경하고 싶을 경우에는 PATCH를 사용하면 된다.
PATCH
- 리소스 부분 변경
위 사진처럼 PATCH를 사용해서 age를 50으로 설정해준다.
그러면 위 사진처럼 age 값만 변경되고 username은 살아있는 것을 볼 수 있다.
저렇게 리소스를 부분적으로 변경하고 싶을 경우에는 PATCH를 사용하면 된다.
DELETE
- 리소스 제거
예시를 보면, 만약 자기가 members의 100번을 지우고 싶을 경우 DELETE를 사용하여 100번을 보내면,
위 사진처럼 100번 자리에 있는 리소스가 제거가 된 것을 볼 수 있습니다.
* 가끔 서버에서 PATCH를 못 알아먹을 때가 있는데 그럴 때는 POST를 사용하면 됩니다.
오늘은 HTTP 메서드중에서 PUT, PATCH, DELETE에 대해서 알아봤습니다.
'HTTP 웹 지식' 카테고리의 다른 글
HTTP 메서드 활용1(클라이언트에서 서버로 데이터 전송1) (0) | 2022.01.09 |
---|---|
HTTP 메서드4(메서드의 속성) (0) | 2022.01.09 |
HTTP 메서드2(GET, POST) (0) | 2022.01.09 |
HTTP 메서드1(HTTP API를 만들어보자) (0) | 2022.01.07 |
HTTP 기본3(비 연결성) (0) | 2022.01.07 |