GET : 리소스 조회
POST : 데이터 처리
PUT : 리소스 대체
PATCH : 리소스 부분 변경
DELETE : 리소스 삭제
GET
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
- 메시지 바디를 사용해서 데이터를 전달할 수 있지만 권장하지 않음
POST
- 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버는 요청 데이터를 처리
- 주로 신규 리소스 등록, 프로세스 처리에 사용
- “POST 메서드는 대상 리소스가 리소스의 고유 한 의미 체계에 따라 요청에 포함 된 표현을 처리하도록 요청합니다”
- 컨트롤 URI, 애매하면 POST
PUT
- 리소스를 대체
- 리소스가 있으면 대체
- 리소스가 없으면 생성
- 클라이언트가 리소스의 위치를 알고 있음 (Post 와의 차이)
PATCH
- 리소스 부분 변경
Delete
- 리소스 삭제
HTTP 메서드의 속성
- 안전 (Safe Methods)
- 호출해도 리소스를 변경하지 않는다.
- 멱등(Idempotent Methods)
- 여러번 호출하여도 결과가 같다.
- 대상 리소스를 기준으로 한다.
- 캐시가능(Cacheable Methods)
- 응답 결과 리소스를 캐시하여 사용해도 되는가?
- 실제로는 GET, HEAD 정도만 캐시로 사용
메소드 | 안전 | 멱등 | 캐시 가능 |
GET | ✅ | ✅ | ✅ |
POST | ❌ | ❌ | ✅ |
PUT | ❌ | ✅ | ❌ |
PATCH | ❌ | ❌ | ✅ |
DELETE | ❌ | ✅ | ❌ |