총 87개 서포트 유틸리티
100% 브라우저 자체 연산 (서버 전송 없음)
Zero Latency 실시간 결과
완전 프라이빗 개인정보 보호
개발자 및 데이터 Client Local

HTTP 상태 코드 사전

웹 개발, API 연동, 서버 디버깅 시 필요한 모든 HTTP 응답 코드(1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, 5xx Server Error)의 RFC 표준 정의, 발생 원인, 실무 해결 방법 및 관련 헤더 정보를 실시간 검색하고 확인하세요.

Client-Side 100% - 완전한 오프라인 로컬 사전

1xx 정보 제공 (Informational)

요청을 받았으며 작업을 계속 진행 중임

100Continue
계속 진행

클라이언트가 요청의 초기 부분을 전송했으며, 나머지 본문을 계속 전송해도 됨을 알림.

캐시 불가 (임시 응답)Detail
101Switching Protocols
프로토콜 전환

클라이언트의 요청에 따라 서버가 통신 프로토콜을 전환함 (예: HTTP -> WebSocket).

캐시 불가Detail
103Early Hints
사전 리소스 힌트

최종 HTTP 응답이 준비되는 동안 브라우저가 CSS, JS 등 핵심 리소스를 사전 로드(Preload)할 수 있도록 조기 힌트를 제공.

캐시 불가Detail

2xx 성공 (Success)

클라이언트의 요청이 성공적으로 수신되어 처리됨

200OK
성공

클라이언트의 HTTP 요청이 성공적으로 처리되었음.

기본적으로 캐시 가능 (GET/HEAD)Detail
201Created
생성 완료

요청이 성공적으로 처리되어 하나 이상의 새로운 리소스가 서버에 생성되었음.

Location 헤더가 명시된 경우 특정 조건에서 캐시 가능Detail
202Accepted
수락됨 (비동기 처리)

요청이 접수되었으나 처리가 아직 완료되지 않았음 (배치 작업 또는 비동기 큐잉).

캐시 불가Detail
204No Content
본문 없음

요청이 성공적으로 수행되었으나 클라이언트에 반환할 본문(Body) 데이터가 없음.

기본적으로 캐시 가능Detail
206Partial Content
부분 콘텐츠

클라이언트가 Range 헤더를 통해 요청한 리소스의 특정 바이트 범위만 성공적으로 반환함.

특정 조건에서 캐시 가능Detail

3xx 리다이렉션 (Redirection)

요청을 완료하기 위해 추가적인 동작(이동)이 필요함

301Moved Permanently
영구 이동 (SEO)

요청한 리소스의 URI가 새로운 주소로 영구적으로 변경되었음.

기본적으로 영구 캐시됨Detail
302Found
임시 이동

요청한 리소스가 일시적으로 다른 URI에 존재함.

명시적 Cache-Control이 없는 한 캐시되지 않음Detail
304Not Modified
수정되지 않음 (캐시)

클라이언트가 보낸 조건부 요청(If-None-Match, If-Modified-Since) 결과, 리소스가 변경되지 않아 로컬 캐시를 재사용함.

캐시 갱신 응답Detail
307Temporary Redirect
임시 리다이렉트 (메서드 보존)

요청한 리소스가 임시로 다른 주소에 있으며, 원래의 HTTP 메서드(POST, PUT 등)와 본문을 그대로 유지하여 재요청해야 함.

캐시 불가Detail
308Permanent Redirect
영구 리다이렉트 (메서드 보존)

요청한 리소스가 영구적으로 새 주소로 변경되었으며, HTTP 메서드와 본문을 변경하지 않고 유지해야 함.

기본적으로 영구 캐시됨Detail

4xx 클라이언트 오류 (Client Error)

잘못된 요청 구문이나 유효하지 않은 파라미터로 처리 불가

400Bad Request
잘못된 요청

클라이언트의 요청 구문이 잘못되었거나, 파라미터 유효성 검사를 통과하지 못함.

캐시 불가Detail
401Unauthorized
인증 필요 (로그인 필요)

요청한 리소스에 접근하기 위한 유효한 인증 자격 증명(토큰, 세션)이 제공되지 않았거나 만료됨.

캐시 불가Detail
403Forbidden
접근 거부 (권한 없음)

서버가 클라이언트의 신원은 확인했으나, 해당 리소스에 접근할 수 있는 권한(Role/Permission)이 없음.

캐시 불가Detail
404Not Found
찾을 수 없음

서버가 요청받은 URI와 일치하는 리소스를 찾을 수 없음.

기본적으로 캐시 가능 (명시적 헤더 포함 시)Detail
405Method Not Allowed
허용되지 않은 메서드

요청한 URI가 해당 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하지 않음.

캐시 불가Detail
408Request Timeout
요청 시간 초과

서버가 준비된 대기 시간 내에 클라이언트의 전체 요청을 수신하지 못하고 연결을 종료함.

캐시 불가Detail
409Conflict
리소스 충돌

서버의 현재 리소스 상태와 충돌이 발생하여 요청을 처리할 수 없음.

캐시 불가Detail
410Gone
영구 삭제됨 (SEO)

요청한 리소스가 서버에서 영구적으로 삭제되었으며 전달할 포워딩 주소도 없음.

기본적으로 캐시 가능Detail
413Payload Too Large
페이로드 크기 초과

요청 본문의 크기가 서버가 처리할 수 있는 최대 한도를 초과함.

캐시 불가Detail
415Unsupported Media Type
미디어 타입 불일치

요청 본문의 페이로드 포맷(Content-Type)을 서버가 지원하지 않음.

캐시 불가Detail
422Unprocessable Entity
처리할 수 없는 엔티티 (유효성 검증 실패)

요청 문법(JSON)은 올바르나, 데이터의 의미론적(Semantic) 유효성 검사를 통과하지 못함.

캐시 불가Detail
429Too Many Requests
요청 횟수 제한 초과 (Rate Limit)

지정된 시간 내에 너무 많은 요청을 보내 서버의 속도 제한(Rate Limit)을 초과함.

캐시 불가Detail

5xx 서버 오류 (Server Error)

서버 내부의 결함이나 과부하로 올바른 요청을 완수하지 못함

500Internal Server Error
서버 내부 오류

서버에서 예상치 못한 치명적인 예외가 발생하여 요청을 정상 완수하지 못함.

캐시 불가Detail
501Not Implemented
미구현 기능

서버가 요청을 이행하는 데 필요한 기능을 아직 구현하지 않았거나 지원하지 못함.

캐시 불가Detail
502Bad Gateway
게이트웨이 불량 (업스트림 서버 다운)

게이트웨이나 리버스 프록시(Nginx, Cloudflare)가 상위 업스트림 서버(Node.js, Spring Boot)로부터 유효하지 않은 응답을 받음.

캐시 불가Detail
503Service Unavailable
서비스 이용 불가 (서버 과부하 / 정기 점검)

서버가 일시적인 과부하 상태이거나 정기 점검 중이어서 현재 요청을 처리할 수 없음.

캐시 불가Detail
504Gateway Timeout
게이트웨이 시간 초과

게이트웨이나 리버스 프록시(Nginx)가 업스트림 서버의 응답을 기다리다 타임아웃 한도 시간을 초과함.

캐시 불가Detail
웹 아키텍처 & API 표준 가이드

HTTP 상태 코드 마스터: 올바른 상태 코드 설계와 실전 디버깅 전략

HTTP 상태 코드는 클라이언트(브라우저, 앱)와 서버(API, 프록시) 간의 대화를 정의하는 가장 기초적이면서도 강력한 글로벌 표준 통신 규약입니다.

올바른 상태 코드를 반환하는 것은 프론트엔드의 에러 처리 복잡도를 획기적으로 낮추고, 검색엔진의 SEO 크롤링 효율을 극대화하며, 마이크로서비스 인프라의 장애 복구 시간을 단축하는 핵심 원동력입니다.

전체 1xx~5xx RFC 표준 레퍼런스

RFC 9110 및 주요 HTTP 규격에 정의된 핵심 상태 코드의 정확한 정의와 실제 실무 용례 수록

실전 원인 및 프론트/백엔드 해결책

단순한 사전적 정의를 넘어 개발자가 즉시 조치할 수 있는 디버깅 체크리스트와 헤더 활용법 제시

실시간 즉시 검색 & 키보드 단축키

숫자 코드(404, 502) 및 영문/한글 키워드(권한, 토큰, 게이트웨이) 실시간 필터링 지원

주요 핵심 HTTP 상태 코드 비교 요약표

코드상태 명칭분류캐시 여부핵심 용도 및 발생 상황
200OK2xx 성공가능정상적인 데이터 조회 및 처리 성공
201Created2xx 성공가능(조건부)POST 신규 리소스 생성 성공 (Location 헤더 포함)
204No Content2xx 성공가능DELETE 성공 또는 본문 반환이 불필요한 저장 성공
301Moved Permanently3xx 이동영구 캐시도메인/URL 영구 이전 (SEO 점수 온전 이전)
304Not Modified3xx 이동캐시 갱신클라이언트 ETag 캐시 재사용 (본문 전송 생략)
400Bad Request4xx 클라이언트불가파라미터 누락, 유효성 실패, 깨진 JSON 문법
401Unauthorized4xx 클라이언트불가인증 자격 증명 누락 또는 JWT Access Token 만료
403Forbidden4xx 클라이언트불가인증은 되었으나 관리자 등 접근 권한(Role) 부족
404Not Found4xx 클라이언트가능(조건부)요청한 엔드포인트 URL 또는 DB 데이터 미존재
429Too Many Requests4xx 클라이언트불가API 호출 한도(Rate Limit) 초과 (Retry-After 대기)
500Internal Server Error5xx 서버불가백엔드 애플리케이션 미처리 예외 및 크래시
502Bad Gateway5xx 서버불가Nginx 등 프록시 뒤의 백엔드 WAS 프로세스 다운
504Gateway Timeout5xx 서버불가백엔드 DB 슬로우 쿼리 등으로 프록시 대기시간 초과

1. REST API 설계 시 흔히 실수하는 3대 상태 코드 매핑 원칙

200 OK 안에 error: true를 담아 응답하는 안티패턴 지양: HTTP 레벨에서 200을 반환하면 프론트엔드의 axios나 fetch는 이를 성공으로 간주하므로 글로벌 에러 인터셉터가 동작하지 않습니다. 클라이언트 오류는 반드시 4xx, 서버 오류는 5xx를 반환해야 합니다.

200 vs 201 vs 204의 정확한 구분: POST로 신규 데이터를 만들었다면 201 Created와 생성된 주소(Location), DELETE 성공 시에는 페이로드가 없으므로 204 No Content, 단순 GET 조회는 200 OK를 명확히 분리하세요.

401 Unauthorized vs 403 Forbidden: 신원 확인이 안 된 상태(비로그인, 만료된 토큰)는 401, 신원은 확인되었으나 해당 리소스에 대한 접근 권한(예: 일반 회원이 관리자 API 호출)이 없는 경우는 403입니다.

2. 301 vs 302 vs 307 vs 308: SEO를 지키는 리다이렉트 선택법

301 Moved Permanently: 도메인 이전(HTTP -> HTTPS)이나 영구적인 URL 변경 시 사용하며, 구글 등 검색엔진 크롤러가 기존 URL의 백링크 및 PageRank 점수를 새 주소로 100% 전달합니다. 브라우저가 강력하게 캐싱하므로 잘못 적용하지 않도록 주의해야 합니다.

302 Found vs 307 Temporary Redirect: 302는 과거 레거시 브라우저에서 POST 요청을 GET으로 변형하는 관습이 있었습니다. POST 데이터를 그대로 유지하며 임시 리다이렉트하려면 표준인 307을 사용해야 합니다.

308 Permanent Redirect: 301과 동일하게 영구 이전이면서도, HTTP 요청 메서드(POST, PUT 등)와 본문을 강제로 유지시키는 현대적 표준 리다이렉트 코드입니다.

3. 4xx 클라이언트 에러와 5xx 서버 에러의 프론트엔드 예외 처리 패턴

4xx 에러 처리: 사용자의 입력값 오류이거나 인증 만료이므로, 토큰을 재발급(401)하거나 폼 필드 아래에 붉은색 유효성 검증 안내 문구(400, 422)를 띄워 사용자가 스스로 수정할 수 있도록 유도해야 합니다.

5xx 에러 처리: 프론트엔드나 사용자의 잘못이 아닌 백엔드 인프라/코드 장애이므로, "잠시 후 다시 시도해 주세요"라는 친절한 에러 안내 모달과 함께 Sentry 등 에러 트래킹 도구에 즉시 경보를 발송해야 합니다.

글로벌 인터셉터(Global Interceptor): Axios 인터셉터에서 401 수신 시 Refresh Token으로 사일런트 토큰 재발급을 시도하고, 실패 시 자동 로그아웃 및 로그인 페이지로 라우팅하는 패턴이 실무 표준입니다.

4. 429 Too Many Requests와 Rate Limiting 대응 전략

• 오픈 API(OpenAI, 결제 게이트웨이, 소셜 로그인 등)를 호출할 때 호출 한도를 넘어서면 429 Too Many Requests가 반환됩니다.

• 응답 헤더의 Retry-After: 30 (30초 후 재시도 가능) 값을 읽어 대기 시간을 산출해야 합니다.

• 재시도 로직에는 지수 백오프(Exponential Backoff)지터(Jitter, 무작위 분산 지연)를 추가하여 수많은 클라이언트가 동시에 재요청하여 서버를 다시 마비시키는 썬더링 허드(Thundering Herd) 현상을 방지해야 합니다.

5. Nginx 502 Bad Gateway vs 504 Gateway Timeout 인프라 디버깅

502 Bad Gateway: Nginx와 뒤의 백엔드 WAS(Node.js, Django, Spring Boot) 사이의 연결이 끊긴 것입니다. 백엔드 프로세스가 OOM으로 사망했거나, 로컬 포트 바인딩(예: 3000번 포트)이 닫혀 있을 가능성이 90% 이상입니다.

504 Gateway Timeout: 백엔드 프로세스는 살아 있지만, 실행 중인 DB 쿼리가 락에 걸렸거나 대용량 파일 처리로 Nginx의 proxy_read_timeout(기본 60초)을 넘겨 Nginx가 먼저 연결을 끊어버린 상황입니다. 슬로우 쿼리 분석 및 쿼리 최적화가 필수적입니다.

자주 묻는 질문 (FAQ)

Q.API에서 에러가 났을 때 200에 에러 코드를 넣는 것과 400/500을 쓰는 것 중 무엇이 더 좋나요?
A.HTTP 상태 코드 자체를 400, 401, 404, 500 등으로 정확히 구분하는 것이 표준입니다. 200 OK로 에러를 감싸면 CDN 캐싱, API 게이트웨이 모니터링, 프론트엔드 네트워크 인터셉터가 모두 오작동하게 됩니다.
Q.401과 403의 차이는 무엇인가요?
A.401 Unauthorized는 "누구인지 모름(인증 필요/로그인 필요)"이며, 403 Forbidden은 "누구인지는 알지만 이 행동을 할 권한이 없음(권한 부족/인가 실패)"입니다.
Q.301 리다이렉트가 브라우저에 너무 세게 캐시되어서 수정이 안 됩니다. 어떻게 하나요?
A.301은 브라우저가 디스크에 영구 캐싱하므로 브라우저 캐시를 완전히 비우거나, 개발 중에는 302/307 임시 리다이렉트로 테스트한 후 프로덕션 배포 시에만 301로 전환하는 것이 안전합니다.
Q.418 I am a teapot 코드는 실제로 쓰이나요?
A.1998년 만우절 장난(RFC 2324 하이퍼 텍스트 커피 포트 제어 프로토콜)으로 제정된 이스터에그 코드입니다. 상용 비즈니스 로직에는 쓰이지 않지만 대부분의 웹 프레임워크에 구현되어 있습니다.

관련 도구

포트 번호(Port) 사전

HTTP, SSH, MySQL 등 주요 네트워크 포트 번호와 보안 취약점을 검색하는 포트 사전

User Agent 분석기

개발자 및 데이터 관련 브라우저 로컬 유틸리티 기능입니다.