지난 번에 이어서 나머지 메서드도 알아보자!
PUT
리소스를 대체한다. (파일의 복사랑 유사) (출처)
기존에 파일이 없으면 새로 넣어주고, 똑같은 파일이 있다면 덮어 쓴다.
- 리소스가 있으면 대체
- 리소스가 없으면 생성
- 쉽게 이야기해서 덮어버린다.
- 즉, 완전히 대체해버린다.
중요! 클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 알고 URI 지정
- POST와의 차이점을 알아두자
아래 그림을 보면 PUT /members/100 HTTP/1.1
→ 클라이언트가 구체적인 리소스 전체 경로를 알고있고 URI를 지정한다!
→ 이 점이 POST와의 차이점이다.
→ PUT 같은 경우는 클라이언트가 리소스를 식별한다.
PUT
리소스가 있는 경우 (출처)
- username : old로 age를 50이라는 메시지를 담아서 PUT으로 보낸다.
- 이 메시지는 서버에 있는 리소스를 보낸 메시지로 대체한다.
주의할 점
PUT은 리소스를 완전히 대체한다는 점을 꼭 기억하자!
아래와 같이 username 없이 age만 담아서 보내게 될 경우
- PUT은 완전 대체이기 때문에 보낸 메시지인 age:50으로만 대체된다.
- 즉, 서버 리소스에 있는 username 필드가 삭제되어버리고 클라이언트에서 요청한 메시지로 덮어쓰게된다는 점
이런 대체적인 상황으로 사용하는 PUT과는 달리 부분만 변경하고 싶을 땐 어떻게 하지?
해서 나온 HTTP 메서드가 PATCH 이다! (출처)
PATCH의 과정
- 부분 변경하는 경우 PATCH를 사용하는데 서버마다 PATCH를 지원하지 않는 서버도 있다.
- 그럴 경우에는 POST를 쓰자! 왜냐 POST는 앞에서 만능이라고 했으니까
DELETE
- 이름에서도 알수 있듯이 리소스를 제거하는 데 사용하는 HTTP 메서드 이다.
- 클라이언트가 요청한 메시지에 포함된걸 서버가 보고 삭제해준다.
'Dev > HTTP' 카테고리의 다른 글
RS) IP(Internet Protocol) (0) | 2022.03.26 |
---|---|
HTTP 메서드 속성 (0) | 2021.05.23 |
HTTP 메서드 종류 GET과 POST (0) | 2021.05.23 |
HTTP 메서드 = HTTP API (0) | 2021.05.23 |
HTTP의 메시지 (0) | 2021.05.23 |