RUNWEBTOOLS
한국어
웹 & 개발자

HTTP 상태 코드의 의미

업데이트 2026-07-06

브라우저가 페이지를 불러오거나 앱이 API를 호출할 때마다, 서버는 세 자리 상태 코드로 답합니다. 대부분은 볼 일이 없지만, 뭔가 깨졌을 때 — 404, 500 — 그 숫자가 첫 단서입니다. 이 가이드는 상태 코드를 한눈에 읽는 법을 가르쳐 드립니다.

첫 자리를 읽으세요

요령은 첫 자리가 분류를 알려준다는 것이라, 한 번도 본 적 없는 코드의 의도도 이해할 수 있습니다:

  • 1xx — 정보(Informational): 받았고, 아직 처리 중(일상 사용에선 드묾).
  • 2xx — 성공(Success): 잘 됐음.
  • 3xx — 리다이렉션(Redirection): 리소스가 다른 곳에 있음.
  • 4xx — 클라이언트 오류(Client error): 요청이 잘못됨(당신 쪽).
  • 5xx — 서버 오류(Server error): 요청은 멀쩡했는데 서버가 실패함.

이 4xx 대 5xx 구분이 디버깅할 때 가장 유용한 구별입니다: 4xx는 요청을 고치라는 뜻, 5xx는 서버 탓이라는 뜻.

실제로 만나게 될 코드들

성공과 리다이렉트

  • 200 OK — 표준 “잘 됐음” 응답.
  • 201 Created — 새 리소스가 생성됨(POST 이후).
  • 301 Moved Permanently — 이 URL이 영구히 이동함. 링크를 갱신하세요. SEO에 중요.
  • 302 Found — 임시 리다이렉트. 원래 URL을 계속 쓰세요.
  • 304 Not Modified — 캐시된 사본이 아직 유효해, 아무것도 다시 보내지 않음.

클라이언트 오류 (4xx)

  • 400 Bad Request — 요청 형식이 잘못됨.
  • 401 Unauthorized — 인증이 필요함(로그인).
  • 403 Forbidden — 인증은 됐지만 허용되지 않음.
  • 404 Not Found — 리소스가 존재하지 않음.
  • 429 Too Many Requests — 레이트 리밋에 걸림. 속도를 늦추세요.

서버 오류 (5xx)

  • 500 Internal Server Error — 일반적인 서버 측 실패.
  • 502 Bad Gateway — 상위 서버가 잘못된 응답을 반환함.
  • 503 Service Unavailable — 서버가 과부하거나 점검으로 다운됨.
  • 504 Gateway Timeout — 상위 서버가 제때 응답하지 않음.

401 vs. 403: 흔한 혼동

이 둘은 비슷하게 느껴지지만 한 단어에서 다릅니다. 401 Unauthorized는 사실 “인증되지 않음(unauthenticated)”을 뜻합니다 — 서버가 당신이 누구인지 모르니 로그인하세요. 403 Forbidden은 서버가 당신이 누구인지 알지만 여전히 허용하지 않는다는 뜻입니다. 하나는 신원에 관한 것, 다른 하나는 권한에 관한 것입니다.

전체 목록

등록된 모든 코드와 그 의미를 — 검색 가능하고 클래스별로 묶어 — 보려면 완전한 HTTP 상태 코드 레퍼런스를 보세요. API 응답을 디버깅 중이라면, JWTURL 인코딩 가이드가 당신이 끊임없이 마주칠 다른 두 가지를 다룹니다.

웹 & 개발자 더 보기

웹 & 개발자 가이드 전체 보기 →

이 가이드에서 언급한 도구