Warning
예외 시나리오: HttpMediaTypeNotSupportedException
마시멜로를찾아서
2025. 6. 16. 11:16
728x90
반응형
❓ 언제 발생하나요?
- 클라이언트가 서버가 지원하지 않는 Content-Type으로 요청할 때 발생합니다.
예를 들어 서버는 application/json만 받도록 설정되어 있는데, 클라이언트가 아래처럼 보낸다면?
POST /api/users
Content-Type: application/xml
<user><name>John</name></user>
→ 서버가 XML을 지원하지 않는 경우 이 예외가 발생합니다.
📛 예외 메시지 예시
Content type 'application/xml' not supported
✅ 왜 잘 안 발생하나요?
- 대부분의 현대 프론트엔드/모바일 앱은 Content-Type: application/json을 기본으로 사용하고,
- Spring Boot도 기본적으로 application/json만 처리하므로 잘 관리된 시스템에서는 거의 문제가 발생하지 않음
✅ 대처 방안: 사용자에게 명확한 응답 제공
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(HttpMediaTypeNotSupportedException.class)
public ResponseEntity<ErrorResponse> handleUnsupportedMediaType(HttpMediaTypeNotSupportedException ex) {
String msg = "지원하지 않는 Content-Type입니다. application/json으로 요청해주세요.";
return ResponseEntity.status(HttpStatus.UNSUPPORTED_MEDIA_TYPE)
.body(new ErrorResponse("UNSUPPORTED_MEDIA_TYPE", List.of(msg)));
}
}
📦 요약
항목설명
예외 | HttpMediaTypeNotSupportedException |
원인 | 서버가 허용하지 않은 Content-Type으로 요청 |
발생 빈도 | 매우 낮음 (현대 프론트엔드 대부분 JSON 사용) |
대처 | 사용자에게 Content-Type 안내 메시지 제공 |
HTTP 상태 코드 | 415 Unsupported Media Type |
728x90
반응형