개발자

🌐 HTTP 상태 코드 검색기

HTTP 65+ 상태 코드 한국어 설명·발생 시기·해결 힌트. CORS·JWT·Lambda 시나리오.

⚠️ 본 도구의 HTTP 상태 코드 설명·해결 힌트는 RFC 7231·9110 등 표준 명세와 일반적 운영 경험을 정리한 어림이며, 모든 시나리오를 완전히 커버하지 않습니다. 실제 운영 환경에서 마주친 오류는 서버 로그·DevTools Network 탭·CDN 대시보드 등 추가 진단이 필요합니다. Cloudflare(521·524)·nginx(499) 등 비표준 코드는 해당 벤더의 공식 문서를 우선 참조하세요. 분야별 안전 안내는 면책조항 참고.

100

ℹ️ Continue

계속

클라이언트가 요청을 계속 보내도 됨

101

🔀 Switching Protocols

프로토콜 전환

프로토콜 전환 요청 수락 (예: HTTP → WebSocket)

103

💨 Early Hints

조기 힌트

최종 응답 전 미리 힌트 전송 (preload·preconnect)

200

OK

성공

요청이 성공적으로 처리되었습니다

201

🎉 Created

생성됨

POST 요청으로 새 리소스가 생성되었습니다

202

Accepted

수락됨

요청은 수락되었지만 처리는 비동기로 진행 중

204

📭 No Content

본문 없음

성공했지만 응답 본문이 없습니다

206

📦 Partial Content

부분 콘텐츠

범위(Range) 요청이 성공해 일부 콘텐츠 반환

207

📊 Multi-Status

다중 상태

WebDAV — 여러 리소스 상태를 한 번에 응답

226

🔧 IM Used

IM 사용됨

Delta encoding (RFC 3229) — 거의 사용 안됨

300

🔀 Multiple Choices

여러 선택

여러 응답 후보 중 클라이언트가 선택

301

🔀 Moved Permanently

영구 이동

리소스가 영구적으로 새 URL로 이동했습니다

302

↪️ Found

임시 이동

리소스가 임시로 다른 URL에 있습니다

303

👀 See Other

다른 위치 참조

POST 후 GET으로 결과 페이지 이동 (PRG 패턴)

304

🔄 Not Modified

수정되지 않음

캐시된 버전이 최신 — 본문 전송 안 함

307

↪️ Temporary Redirect

임시 리다이렉트

302와 비슷하지만 메서드·본문 그대로 유지

308

🔀 Permanent Redirect

영구 리다이렉트

301과 비슷하지만 메서드·본문 그대로 유지

400

Bad Request

잘못된 요청

요청 형식이 잘못되었습니다 (문법 오류·잘못된 JSON 등)

401

🔐 Unauthorized

인증 필요

인증 정보가 없거나 잘못되었습니다 (실제 의미: 인증 안됨)

402

💳 Payment Required

결제 필요

결제가 필요합니다 (대부분 미사용)

403

🚫 Forbidden

금지됨

인증은 됐지만 접근 권한이 없습니다

404

🔍 Not Found

찾을 수 없음

요청한 리소스를 찾을 수 없습니다

405

🚷 Method Not Allowed

허용되지 않은 메서드

HTTP 메서드가 허용되지 않습니다 (예: GET 전용에 POST)

406

🙅 Not Acceptable

허용 불가

Accept 헤더와 호환되는 응답 형식이 없습니다

407

🔒 Proxy Authentication Required

프록시 인증 필요

프록시 서버 인증이 필요합니다

408

⏱️ Request Timeout

요청 시간 초과

서버가 요청을 기다리다 시간 초과 (클라이언트가 늦음)

409

⚔️ Conflict

충돌

리소스 상태 충돌 (예: 중복 등록)

410

👻 Gone

영구 삭제됨

리소스가 영구적으로 삭제되었습니다 (404와 달리 의도적)

411

📏 Length Required

Content-Length 필요

Content-Length 헤더가 필요합니다

412

🚧 Precondition Failed

사전 조건 실패

조건부 요청의 조건 (If-Match·If-None-Match) 실패

413

📦 Payload Too Large

본문 너무 큼

요청 본문이 서버 허용 한도를 초과했습니다

414

📏 URI Too Long

URL 너무 김

URL이 서버 허용 한도를 초과했습니다 (보통 8KB+)

415

📋 Unsupported Media Type

지원 안 되는 형식

Content-Type 형식을 서버가 지원하지 않습니다

416

📐 Range Not Satisfiable

범위 충족 불가

Range 헤더 범위가 파일 크기를 초과

417

😞 Expectation Failed

기대 실패

Expect 헤더 기대를 서버가 충족 못함

418

🫖 I'm a teapot

나는 찻주전자

농담 코드 — RFC 2324 (Hyper Text Coffee Pot Control Protocol)

422

📋 Unprocessable Entity

처리 불가능한 엔티티

요청 형식은 맞지만 의미적 오류 (Validation 실패)

425

Too Early

너무 이름

서버가 재전송될 수 있는 요청을 처리할 의향이 없음 (TLS 0-RTT)

426

⬆️ Upgrade Required

업그레이드 필요

다른 프로토콜(HTTPS·HTTP/2)로 전환 필요

428

🔐 Precondition Required

사전 조건 필요

If-Match·If-Unmodified-Since 같은 조건부 헤더 필수

429

🚦 Too Many Requests

너무 많은 요청

Rate limit 초과 — 너무 많은 요청

431

📋 Request Header Fields Too Large

헤더 너무 큼

요청 헤더가 서버 허용 크기 초과

451

⚖️ Unavailable For Legal Reasons

법적 사유로 사용 불가

법적 검열·차단 (지역 제한·DMCA 등)

500

💥 Internal Server Error

내부 서버 오류

서버 내부에서 알 수 없는 오류 발생

501

🚧 Not Implemented

구현되지 않음

서버가 요청 메서드를 지원하지 않습니다

502

🔌 Bad Gateway

게이트웨이 오류

게이트웨이(nginx·CDN)가 백엔드 서버에서 잘못된 응답 받음

503

🚧 Service Unavailable

서비스 이용 불가

서버가 일시적으로 이용 불가 (점검·과부하)

504

Gateway Timeout

게이트웨이 시간 초과

게이트웨이가 백엔드 응답을 기다리다 시간 초과

505

📜 HTTP Version Not Supported

HTTP 버전 미지원

서버가 요청한 HTTP 버전을 지원 안 함

506

🔄 Variant Also Negotiates

협상 변형 오류

콘텐츠 협상 순환 참조 (드묾)

507

💾 Insufficient Storage

저장 공간 부족

WebDAV — 서버 저장 공간 부족

508

🔁 Loop Detected

루프 감지됨

WebDAV — 무한 루프 감지

510

🔧 Not Extended

확장 필요

추가 확장이 필요한 요청 (드묾)

511

📶 Network Authentication Required

네트워크 인증 필요

네트워크 인증 (Wi-Fi 캡티브 포털) 필요

520

☁️ Web Server Returned an Unknown Error

알 수 없는 오류

Cloudflare — Origin 서버가 빈 응답·잘못된 응답

521

☁️ Web Server Is Down

Origin 서버 다운

Cloudflare — Origin 서버 다운 (TCP 연결 거부)

522

☁️ Connection Timed Out

연결 시간 초과

Cloudflare — Origin 서버 TCP 연결 시간 초과

523

☁️ Origin Is Unreachable

Origin 도달 불가

Cloudflare — Origin 서버에 도달할 수 없음 (DNS·라우팅)

524

☁️ A Timeout Occurred

응답 시간 초과

Cloudflare — Origin이 100초 내 응답 못함 (504와 비슷)

525

☁️ SSL Handshake Failed

SSL 핸드셰이크 실패

Cloudflare ↔ Origin SSL/TLS 핸드셰이크 실패

... 첫 60개만 표시 (전체 65개)

🛠️ 어떻게 사용하나요?

  1. 탭 1 검색 — 코드 번호(404) 또는 키워드(인증·timeout) 입력 → 자동완성 결과 + 큰 상세 카드 + 한국 사이트 사례 + RFC 링크
  2. 탭 2 카테고리별 — 1xx~5xx + 비표준 한 페이지 전체 보기, 카드 클릭 시 탭 1 상세
  3. 탭 3 디버깅 — 실제 운영 시나리오 12개 (JWT 401·CORS 405·Lambda 504·CF 521 등) — 원인·단계별 해결
  4. 탭 4 가이드 — 5+1 카테고리 의미 + 흔한 혼동 5쌍 (401 vs 403, 502 vs 504) + 프레임워크별 응답

💡 ⭐ 즐겨찾기 추가 → localStorage 저장. 빠른 칩 12개로 인기 코드 즉시 접근.

📊 5+1 카테고리 의미 (1xx ~ 5xx + 비표준)

HTTP 상태 코드는 첫 자리 숫자로 의미를 분류합니다. 카테고리만 봐도 성공인지 클라이언트 문제인지 서버 문제인지 즉시 판단 가능.

카테고리범위의미대표
ℹ️ 1xx100~199Informational (정보)100, 101, 103
✅ 2xx200~299Success (성공)200, 201, 204, 304
↪️ 3xx300~399Redirect (리다이렉트)301, 302, 307, 308
⚠️ 4xx400~499Client Error (클라이언트 오류)400, 401, 403, 404, 429
🚨 5xx500~599Server Error (서버 오류)500, 502, 503, 504
🔌 비표준벤더Cloudflare·nginx 자체 정의521, 524, 499

🆚 흔한 혼동 비교 (401 vs 403, 502 vs 504, 301 vs 302)

  • 401 vs 403 — 401: 인증 정보 X·만료 (토큰 누락) / 403: 인증은 됐지만 권한 없음 (스코프 부족)
  • 301 vs 302 — 301: 영구 이동 (SEO 인덱스 갱신) / 302: 임시 이동 (SEO 영향 X)
  • 502 vs 504 — 502: 백엔드 다운·잘못된 응답 / 504: 백엔드 응답 너무 느림 (timeout)
  • 200 vs 204 — 200: 성공 + 본문 있음 / 204: 성공 + 본문 없음 (DELETE 후 헤더만)
  • 200 vs 201 — 200: 단순 성공 (조회·수정) / 201: 성공 + 새 리소스 생성 (POST + Location 헤더)

📜 표준 vs 비표준 출처

  • 📖 표준 RFC: 7231 (HTTP/1.1)·6585 (추가 코드 428·429·431·511)·8297 (103 Early Hints)·7235 (인증)·7232 (조건부)·7538 (308)·7540 (HTTP/2)·4918 (WebDAV)·9110 (HTTP 의미론, 2022 최신)
  • ☁️ Cloudflare 5xx (520~530): Cloudflare 자체 정의 — Origin 서버 통신 문제 진단
  • 🔌 nginx (444·494·499): nginx 내부 코드 — 클라이언트 종료·헤더 크기·차단
  • 🟦 Microsoft IIS: 440 (Login Time-out)·449 (Retry With)·451 (Redirect)

ⓘ 비표준 코드는 해당 벤더 공식 문서를 우선 참조하세요. 본 도구는 운영에서 자주 보이는 비표준 11개를 포함합니다.

🛠️ 프레임워크별 기본 응답 코드 (Spring·Express·FastAPI·Django)

백엔드 프레임워크가 자동으로 반환하는 코드를 알면 디버깅이 빨라집니다.

프레임워크패턴·실패기본 응답
🍃 Spring Boot@PostMapping200 (또는 ResponseEntity로 201)
🍃 Spring Boot@DeleteMapping200 (수동 204 권장)
🍃 Spring Boot@Valid 실패400 Bad Request (자동)
🍃 Spring Boot@ExceptionHandler 미정의500 Internal
🟢 Expressres.json()200 OK
🟢 Expressnext(err) (error middleware)500 (기본)
🐍 FastAPIPydantic validation 실패422 Unprocessable Entity
🐍 FastAPIHTTPException(404)지정 status_code
🐍 Django RESTserializer.is_valid() 실패400 Bad Request
🐍 Django RESTpermission_classes 실패403 Forbidden

자주 묻는 질문 (FAQ)

Q1. 401과 403의 차이는?

가장 흔한 혼동입니다.
401 Unauthorized: 인증 정보가 없거나 만료됨 (이름과 달리 "권한 부족"이 아님). 실제 의미는 "Unauthenticated"
403 Forbidden: 인증은 됐지만 해당 리소스에 권한 없음 (스코프 부족·IP 차단·CDN 서명 만료)
예시:
• Authorization 헤더 없이 API 호출 → 401 (토큰 자체 없음)
• 일반 사용자 토큰으로 관리자 API 호출 → 403 (토큰은 있지만 권한 부족)
• JWT exp 시간 지남 → 401 (재로그인 필요)
본 도구의 [🔍 검색]에서 401·403을 비교하며 확인 가능.

Q2. 301과 302 어떤 걸 써야 하나요?

SEO·캐시 관점에서 매우 다릅니다.
301 Moved Permanently: 영구 이동. 검색엔진이 새 URL로 인덱스 갱신, 브라우저 캐시. SEO 점수 이전.
302 Found: 임시 이동. 검색엔진은 원본 URL 유지, 캐시 X
사용 가이드:
• 도메인 영구 변경 (daum.net → kakao.com) → 301
• A/B 테스트·임시 분기·점검 페이지 → 302
• POST → POST 메서드 보존 필요 → 307 (임시) / 308 (영구)
⚠️ 301은 캐시되므로 신중히. 한 번 잘못 설정하면 사용자 브라우저에 영구 캐시.

Q3. 502와 504 차이는?

둘 다 게이트웨이(nginx·CDN) 관련 5xx지만 원인이 다릅니다.
502 Bad Gateway: 게이트웨이가 백엔드에서 잘못된 응답 받음 (TCP RST·헤더 깨짐·백엔드 다운)
504 Gateway Timeout: 게이트웨이가 백엔드 응답을 기다리다 timeout (백엔드 너무 느림)
구분 방법:
• 백엔드 서비스가 systemctl status에서 active이면 → 504 (응답 느림)
• 백엔드 다운이면 → 502
일반적 원인: 502 - nginx upstream 다운·헬스체크 실패 / 504 - Lambda 30초 초과·DB 슬로우 쿼리·외부 API 무응답

Q4. CORS 오류는 몇 번 코드인가요?

고정된 코드 없음 — 상황에 따라 다릅니다.
preflight OPTIONS 미응답 → 405 Method Not Allowed 또는 응답 자체 없음
Allow-Origin 헤더 누락 → 200 OK이지만 브라우저가 차단 (네트워크 탭은 200, 콘솔은 CORS 오류)
credentials: include + Allow-Origin: * → 200이지만 브라우저 차단
해결: 본 도구의 [🐛 디버깅] 탭에서 "CORS preflight 실패" 시나리오 참조. 핵심: 서버에 Access-Control-Allow-Origin·Allow-Methods·Allow-Headers 설정.

Q5. 429 Too Many Requests 발생 시?

API rate limit 초과. 응답에 따라 대응:
Retry-After 헤더 확인 (대기 시간 sec) → 그 시간만큼 대기 후 재시도
X-RateLimit-Remaining·X-RateLimit-Reset 헤더 모니터링
Exponential backoff 패턴: 1초 → 2초 → 4초 → 8초 (랜덤 지터 추가)
캐싱·요청 묶기 (배치)로 호출 줄이기
API 플랜 업그레이드 (paid tier)
한국 API 한도:
• 네이버 검색: 25,000회/일
• 카카오 메시지: 분당 한도 (계정별 다름)
• OpenAI: tier별 RPM·TPM
• GitHub: 시간당 5000 (인증), 60 (비인증)

Q6. Cloudflare 521·522·524 차이?

모두 Cloudflare ↔ Origin 서버 통신 문제이지만 단계가 다릅니다.
521 Web Server Is Down: TCP 연결 거부 — Origin 서버 다운·방화벽이 Cloudflare IP 차단
522 Connection Timed Out: TCP 핸드셰이크 timeout — 네트워크 지연·과부하
524 A Timeout Occurred: 연결은 됐지만 100초 내 HTTP 응답 못 받음 — Origin 처리 너무 느림
해결:
• 521/522: Origin 서버 상태 확인 + Cloudflare IP 화이트리스트 (cloudflare.com/ips)
• 524: Origin 처리 시간 단축, 비동기 처리, Cloudflare Enterprise는 100초 → 6000초 가능
WebSocket·SSE 장기 연결은 524 자주 발생 → Cloudflare Enterprise 또는 Cloudflare Tunnel 사용.

Q7. 200 vs 204 vs 201 언제 쓰나요?

REST API 설계 시 의도를 명확히:
200 OK: 성공 + 응답 본문 있음 — GET·PUT·PATCH 결과 반환
201 Created: 성공 + 새 리소스 생성 — POST. Location 헤더 필수 (새 URL)
204 No Content: 성공 + 응답 본문 없음 — DELETE 성공 / PUT으로 변경했지만 결과 안 보낼 때 / CORS preflight
실수:
• DELETE 후 200 + 빈 본문 → 잘못 (204가 명확)
• POST 후 200 + 새 리소스 → 잘못 (201 + Location 헤더)
• 204 응답에 response.json() 호출 → 오류 (본문 없음)

Q8. 422 Unprocessable Entity는 언제?
400과 다른 점이 핵심:
400 Bad Request: 구문 오류 (JSON 파싱 실패·콤마 누락)
422 Unprocessable Entity: 구문은 맞지만 의미 검증 실패 (이메일 형식 X·필수 필드 빈 값·비즈니스 규칙 위반)
프레임워크 자동 사용:
FastAPI: Pydantic validation 실패 시 자동 422
Spring Boot: @Valid 실패 시 기본 400 (수동 422 권장)
Rails ActiveRecord: validation 실패 시 422
REST 베스트 프랙티스는 422 사용으로 의미 명확화. 응답 본문에 필드별 오류 배열 포함:
{ "detail": [
  { "loc": ["body", "email"], "msg": "invalid email", "type": "value_error.email" }
]}
Q9. JWT 만료가 401인가 403인가?

401 Unauthorized가 정답입니다.
• JWT exp 시간 지남 = 인증 정보 만료 = 인증 안 됨 상태 → 401
• 401 응답으로 클라이언트는 refresh_token으로 재발급할 수 있음을 알 수 있음
• 403은 "토큰은 유효한데 권한 부족" (다른 사용자 데이터 접근 등)
실제 동작:
1. JWT 만료 → 서버가 401 + WWW-Authenticate 헤더 응답
2. 클라이언트(axios interceptor 등)가 401 감지
3. refresh_token으로 새 access_token 발급
4. 원래 요청 재시도
일부 잘못된 구현: JWT 만료에 403 반환 — 클라이언트 재시도 로직이 작동 X. 401이 표준.

Q10. 본 도구의 데이터 출처는?

본 도구의 데이터는 다음을 종합한 정보입니다:
RFC 표준: 7231 (HTTP/1.1), 9110 (최신 의미론, 2022), 7235 (인증), 7232 (조건부), 6585·6566·8297·7538·7540 (확장)
WebDAV: RFC 4918, 5842
비표준 출처:
  - Cloudflare 5xx (520·521·522·523·524·525·526·530): Cloudflare 공식 docs
  - nginx (444·494·499): nginx 공식 wiki
한국 사이트 사례: 카카오·네이버·토스·쿠팡·AWS Lambda 운영 경험
해결 힌트: 일반적·검증된 디버깅 단계만 (위험한 워크어라운드 X)
정확한 명세는 외부 RFC·MDN·Cloudflare docs를 우선 참조하세요. 본 도구는 모든 데이터가 정적이며 외부 API 호출 0개.

함께 쓰면 좋은 도구

🌀

cURL 변환기

cURL → fetch·axios·Python·Go

🔗

URL 인코더/디코더

인코드·쿼리 편집·추적 정리

📋

JSON 포맷터

JSON 정렬·압축·유효성