HTTP Status Code
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 컴포넌트