요청 데이터
GET /members/100 HTTP/1.1
Host: localhost:8080
응답 데이터
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 34
{
"username": "young",
"age": 20
}
클라이언트가 members 데이터를 서버에 요청하면, 서버에서 응답문을 json형식으로 만들어 응답을 완료한다. 정상적으로 응답하면 상태코드 200 OK가 표시된다. (꼭 json이 아닐 수도 있다.)
요청 데이터
POST /members HTTP/1.1
Content-Type: application/json
{
"username": "young",
"age": 20
}
응답 데이터
HTTP/1.1 201 Created //200으로 반환되어도 된다.
Content-Type: application/json
Content-Length: 34
Location: /members/100
{
"username": "young",
"age": 20
}
/members
를 요청하면 /members/100
으로 신규 리소스 식별자(100)를 생성하여 반환한다.
1. 새 리소스 생성(등록)
서버가 아직 식별하지 않은 새 리소스 생성
2. 요청 데이터 처리
단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야 하는 경우
POST의 결과로 새로운 리소스가 생성되지 않을 수 있다.
예) POST /orders/{orderId}/start-delivery (컨트롤 URI)
3. 다른 메서드로 처리하기 애매한 경우
예) JSON으로 조회 데이터를 넘겨야 하는데, GET 메서드를 사용하기 어려운 경우
애매하면 POST
POST는 만능이다.
다만 조회는 GET으로 처리하는게 빠르고 간단하기 때문에 조회는 GET을 사용한다.
PUT /members/100 HTTP/1.1
Content-Type: application/json
{
"username": "old",
"age": 50
}
PATCH /members/100 HTTP/1.1
Content-Type: application/json
{
"age": 50
}
/members/100
{
"username": "young",
"age": 50
}
age값만 변경되게 된다.
DELETE /members/100 HTTP/1.1
Host: localhost:8080
members/100 주소의 리소스를 제거하기
해당 글은 인프런 김영한 님의 강의 [모든 개발자를 위한 HTTP 웹 기본 지식]을 학습하여 정리한 내용입니다.