HTTP 상태코드의 종류, 언제 무엇을 써야 하는가?

Yoon Soojeong·2025년 12월 4일
  • 상태코드는 암기과목이 아니다!
  • 상황을 보고 코드를 매칭하는 것이 중요!

01. 필수 8개

코드의미사용상황
200OK조회 성공
201CreatedPOST 생성 성공
204No ContentDELETE 성공, body 없음
400Bad Request파라미터/유효성 실패
401Unauthorized로그인/토큰 없음
403Forbidden권한 부족
404Not Found존재하지 않는 자원
500Server Error서버 내부 예외
  • ex)
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteTodo(@PathVariable Long id) {
	todoService.deleteTodo(id);
    return ResponseEntity.noContent().build(); //204 상태코드 반환!
}
  • body 없이 성공 처리 : 204 표준
  • 즉, DELETE 시 204를 이용하는 이유는 결과 body가 필요 없는 REST 표준 응답 방식이기 때문이다.
  • 만약 없는 id를 삭제하면, 404 처리!

02. 잘 구분해야할 코드들

02-1. 401 vs 403

코드의미사용상황
401인증 실패로그인/토큰 없음
403인가 실패로그인은 했지만, 접근 권한이 없음

02-2. 200 vs 204

코드설명사용상황
200body 있음수정/조회 후 결과 반환
204body 없음삭제/수정 후 body 불필요

03. CRUD 기준

Create -> 201
Read -> 200
Update -> 200 / 204
Delete -> 204
  • CRUD, 인증/인가, 리소스 존재 여부, 서버/클라이언트 책임만 기준 삼으면 8개로 API 전체를 설계할 수 있다.

0개의 댓글