[HTTP] HTTP 메서드2
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 웹 기본 지식(김영한)>
댓글남기기