KSCOLD LogoKSCOLD
Blog
Feed
Product
Admin Night
Vault
Guestbook
Info

Vault 목록

HTTP 상태 코드(HTTP Status)

연결된 노트와 함께 읽기

HTTP 상태 코드(HTTP Status)

2026년 5월 17일
  • HTTP 상태 코드는 클라이언트가 보낸 요청에 대해 서버가 처리 결과를 3자리 숫자로 응답하는 코드이다.
  • 100번대~500번대, 5개 그룹으로 구분된다.
  • Spring에서는 HttpStatus enum 클래스로 정의되어 있으며, ResponseEntity.status(HttpStatus.OK) 형태로 사용한다.

2XX — 성공

코드이름설명주로 사용되는 상황
200OK요청 성공GET 조회 성공
201Created리소스 생성 성공POST로 생성 후 응답
204No Content성공했지만 응답 바디 없음DELETE, PUT 성공

3XX — 리다이렉션

코드이름설명
301Moved Permanently영구 이동 (URL 변경)
302Found임시 이동
304Not Modified캐시된 응답 사용

4XX — 클라이언트 오류

코드이름설명주로 사용되는 상황
400Bad Request잘못된 요청파라미터 누락, 유효성 실패
401Unauthorized인증 실패로그인 안 됨, 토큰 없음/만료
403Forbidden인가 실패권한 없음 (로그인은 됐지만 접근 불가)
404Not Found리소스 없음존재하지 않는 URL 또는 데이터
405Method Not AllowedHTTP 메서드 불일치GET 엔드포인트에 POST 요청
409Conflict리소스 충돌중복 데이터(slug, email 등)
422Unprocessable Entity요청 형식은 맞지만 처리 불가비즈니스 규칙 위반
429Too Many Requests요청 횟수 초과Rate Limiting

5XX — 서버 오류

코드이름설명주로 사용되는 상황
500Internal Server Error서버 내부 오류예외 처리 안 된 에러
502Bad Gateway게이트웨이/프록시 오류외부 API 연결 실패
503Service Unavailable서비스 불가서버 다운, 유지보수 중

Spring에서 사용

Java

401 vs 403 구분

상황코드설명
토큰이 없거나 만료됨401인증(Authentication) 실패
토큰은 있지만 권한 부족403인가(Authorization) 실패

관련

  • HTTP
  • HttpStatus
  • GlobalExceptionHandler
  • BusinessException
  • 인증(Authentication)
  • 인가(Authorization)
  • ResponseEntity

Synapse Map Insight

// ResponseEntity 직접 사용 return ResponseEntity.ok(data); // 200 return ResponseEntity.created(uri).body(data); // 201 return ResponseEntity.noContent().build(); // 204 return ResponseEntity.badRequest().body(error); // 400 return ResponseEntity.status(HttpStatus.FORBIDDEN).body(error); // 403 // GlobalExceptionHandler 연동 @ExceptionHandler(BusinessException.class) public ResponseEntity<ApiResponse<Void>> handle(BusinessException e) { return ResponseEntity .status(e.getErrorCode().getStatus()) // ErrorCode에 정의된 HttpStatus 사용 .body(ApiResponse.error(e)); }