스터디 노트

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