-
HTTP Status Code스터디 노트 2023. 10. 20. 15:17
HTTP 프로토콜을 사용하다 보면 응답 메시지를 활용하게 되는데, 거기에는 HTTP 프로토콜의 버전과 상태 코드등이 포함되어 있습니다.
여기서 HTTP Status Code는 해당 Request에 대한 Response의 상태값을 말합니다.
즉, 클라이언트는 이 상태코드에 따라 적절한 응답 메시지 내용을 처리할 수 있게 됩니다.
일반적으로 HTTP Status Code는 다섯 가지로 구분을 하며, 해당 숫자의 첫 번째 자리는 대분류를 나타내고 그 다음 두 번째와 세 번째는 상세 분류 코드입니다.
다음은 대분류 다섯 가지에 대한 설명입니다.
📌 1xx
임시 응답을 의미합니다. 요청은 성공적으로 받았으나 서버에서 계속 작업이 진행중인 것을 말합니다.
이럴 경우에는 메시지 바디 없이 상태 라인과 헤더로만 구성되어 있습니다.
📌 2xx
해당 Request가 성공했음을 의미합니다. 요청과 프로세스 모두 정상적으로 처리되었음을 의미합니다.
많이 사용되는 코드는 200 OK, 201 Created, 202 Accepted 등이 있습니다.
📌 3xx
Request를 완전히 처리하는데 추가적인 작업이 필요함을 의미합니다.
대표적인 상태 코드는 302 Found이며, 이는 새로운 서버 URL과 Location 헤더를 함꼐 응답하게 됩니다.
클라이언트는 이 헤더를 파싱하여 새로운 URL로 다시 요청을 보내고 우리는 이를 리다이렉션(Redirection)이라고 합니다.
📌 4xx
Request 요청 메시지에 에러가 있음을 의미합니다.
대표적으로 해당 요청의 내용에서 문법이 잘못되었거나(400 Bad Request), 인증 및 인가가 되지 않은 경우(401 Unauthorized, 403 Forbidden)등이 있습니다.
만약 요청에 대한 리소스가 서버에 없을 경우 404 Not Found 상태값을 전달합니다.
📌 5xx
Request를 처리하던 중 서버의 비정상적 동작으로 인한 에러 상태값입니다.
대표적으로 500 Internal Server Error가 있습니다.
이 외에도 상세 분류로 들어가면 수많은 에러 코드가 있습니다.
적절한 Response를 반환해주기 위해선 HTTP Status Code에 대해 알아둘 필요가 있어 정리해둡니다.
✅해당 내용 참고 도서 : 스프링 부트로 개발하는 MSA 컴포넌트
'스터디 노트' 카테고리의 다른 글
REST API의 개념과 설계 방법 (0) 2023.10.24 Spring MVC Component의 동작구조(그림주의) (0) 2023.10.23 스프링 빈, 자바 빈, DTO, VO의 차이점과 불변객체(Immutable Object) (0) 2023.10.20 Transaction이 뭐길래? (1) 2023.10.19 @RequiredArgsConstructor 가 하는 일 (1) 2023.10.18