HTTP 상태 코드에 대해서 설명해주세요.
HTTP 상태 코드는 웹 서버가 클라이언트의 HTTP 요청에 대한 결과를 전달하는 데 사용되는 3자리 숫자로 이루어진 코드입니다. 이 코드는 요청이 성공적으로 처리되었는지 또는 어떤 문제가 발생했는지를 나타냅니다. 100번대부터 500번대까지 존재하며 각 100단위마다 유사한 내용으로 묶여있습니다.
1XX Informational
1xx 번대의 상태 코드들은 요청이 수신되어 처리 중이라는 의미입니다.
2XX Success
2xx 번대의 상태 코드들은 요청이 정상적으로 처리되었다는 의미입니다.
단순히 요청에 대한 성공을 나타내지만, 클라이언트가 어떠한 행위에 대한 성공인지에 대한 것을 나타내기 때문에, 응답을 받고 클라이언트가 취할 행위를 결정하는데 중요하면서도 정말 자주 보게될 상태 코드입니다.
3XX Redirection
3xx 번대의 상태 코드들은 리다이렉션을 의미하며, 이는 요청을 완료하려면 추가적인 작업이 필요함을 의미합니다.
클라이언트가 관심 있어 하는 리소스에 대해 다른 위치를 사용하라고 말해주거나 그 리소스의 내용 대신 다른 대안 응답을 제공합니다.
•
영구 리다이렉션(Permanent) : 특정 리소스의 URL 이 영구적으로 이동
•
일시 리다이렉션(Temporary) : 특정 리소스의 URL 이 일시적으로 이동
•
특수 리다이렉션(Special) : 캐시를 활용할 것인지에 대한 여부
4XX Client Error
4xx 번대의 상태 코드들은 클라이언트 오류를 의미하며, 잘못된 문법 등의 오류로 인해 서버가 요청을 수행할 수 없고 그 원인이 클라이언트에게 있음을 알립니다. 400 잘못된 요청(Bad Request), 403 접근 권한 문제(Forbidden), 404 페이지 또는 경로없음(Not Found)
5XX Server Error
5xx 번대의 상태 코드들은 서버 오류를 의미하며, 400 번대와 동일하게 오류로 인한 요청 처리 실패를 의미하지만 원인이 서버에게 있음을 말합니다. 500 서버 내부 로직 오류 등 (Internal Server Error), 503 서비스 불가능 또는 인증서 등 문제 (Service Unavailable)
4XX 상태코드와 5XX 상태코드 모두 오류를 반환하는 응답 코드이지만, 4XX는 클라이언트의 요청에 문제가 있는 것이기에 요청 메세지를 검토하여 수정한 뒤 재전송하면 해결이 가능하기도 합니다. 다만 5XX 는 서버에 문제가 있는 것이기 때문에 서버 자체의 상태를 보아야 하는 차이가 있습니다.