HTTP 상태 코드
HTTP 상태 코드 전체를 클래스별로 검색합니다. 실무 관점의 설명 포함.
출처와 선별 기준
HTTP 상태 코드의 표준 정의는 RFC 9110(HTTP Semantics)과 IANA HTTP Status Code Registry 에 있습니다. 이 표의 설명은 표준 문구를 옮긴 것이 아니라 각 코드를 실무에서 언제 만나고 무엇과 혼동하기 쉬운지(예: 401 과 403, 301 과 308) 를 기준으로 새로 쓴 것입니다. 표준에 없지만 실제로 자주 보는 비공식 코드(nginx 의 499 등)도 그 사실을 밝히고 포함했습니다. 규범적 정의는 아래 원문을 따르세요.
HTTP 상태 코드 레퍼런스란?
이 도구는 HTTP 응답 상태 코드를 코드·이름·실무 설명과 함께 정리한 검색 가능한 레퍼런스입니다. RFC 9110의 표준 코드는 물론, 실무에서 자주 마주치는 비공식 코드(예: nginx의 499 Client Closed Request)까지 포함해 100번대부터 500번대까지 한 곳에서 찾아볼 수 있습니다.
상태 코드는 앞자리로 성격이 나뉩니다. 1xx는 정보성, 2xx는 성공, 3xx는 리다이렉션, 4xx는 클라이언트 오류, 5xx는 서버 오류입니다. 각 코드에는 단순한 사전적 정의가 아니라 '언제 실제로 만나는지'에 초점을 맞춘 한 줄 설명이 붙어 있어, 로그나 API 응답에서 낯선 코드를 봤을 때 원인을 빠르게 좁힐 수 있습니다.
이 레퍼런스는 서버 조회가 필요 없는 순수 정적 데이터라 브라우저 안에서 즉시 검색·필터링됩니다. 코드 숫자, 이름, 설명 어느 쪽으로도 검색할 수 있고 상태 클래스(1xx~5xx)별 탭으로 좁혀 볼 수 있어, 특정 코드를 외우지 않아도 상황에 맞는 코드를 찾아 쓰기 좋습니다.
사용 방법
- 검색창에 코드 숫자(예: 429)나 이름·키워드(예: timeout, 캐시)를 입력하면 코드·이름·설명 전체에서 실시간으로 걸러집니다.
- 상단 탭(전체 / 1xx / 2xx / 3xx / 4xx / 5xx)으로 특정 클래스만 추려 볼 수 있으며, 검색어와 함께 사용해 범위를 더 좁힐 수 있습니다.
- 표에서 코드·이름과 실무 관점의 설명을 확인해, 로그에서 본 코드의 의미를 파악하거나 API에서 반환할 적절한 코드를 고르는 데 활용합니다.
자주 묻는 질문
- 401과 403은 어떻게 다른가요?
- 401 Unauthorized는 사실상 '미인증' 상태로, 인증 정보가 없거나 유효하지 않아 로그인이 필요하다는 뜻입니다(WWW-Authenticate 헤더 동반). 403 Forbidden은 인증은 됐지만 그 리소스에 대한 권한이 없다는 뜻이라, 재인증해도 접근할 수 없습니다.
- 301과 308, 302와 307의 차이는 무엇인가요?
- 301·302는 역사적으로 리다이렉트 시 메서드가 GET으로 바뀌는 동작이 흔합니다. 반면 308(영구)·307(임시)은 원래 메서드와 본문을 반드시 유지합니다. POST 요청을 리다이렉트하면서 메서드를 보존해야 한다면 307/308을 써야 합니다.
- 429가 보이면 어떻게 대응하나요?
- 429 Too Many Requests는 레이트 리밋 초과입니다. 응답의 Retry-After 헤더가 재시도 가능한 시점을 알려 주므로, 클라이언트는 그 값을 존중해 지수 백오프(exponential backoff)로 재시도하도록 구현하는 것이 좋습니다.
- 502와 504는 무엇이 다른가요?
- 둘 다 게이트웨이·프록시(리버스 프록시·로드밸런서)가 업스트림과 통신하다 발생합니다. 502 Bad Gateway는 업스트림에서 잘못된 응답을 받은 경우(백엔드 다운·크래시 신호)이고, 504 Gateway Timeout은 업스트림이 제때 응답하지 않은 경우(백엔드 지연 신호)입니다.