HTTP 상태 코드
참고 자료HTTP 응답 상태 코드 빠른 참조 — 1xx~5xx — 검색 지원.
| 코드 | 이유 구문 | 카테고리 | 설명 |
|---|
이 페이지에서
HTTP 상태 코드 참조란?#
모든 HTTP 응답은 요청에 무슨 일이 일어났는지 숫자 하나로 알려주는 세 자리 상태 코드를 실고 옵니다. 숫자는 무작위가 아닙니다. 첫째 자리가 계열을 정합니다. 1xx은 “잠깐만, 정보 보낸다”, 2xx은 “여기 있어, 됐어”, 3xx은 “다른 곳을 봐”, 4xx은 “너(클라이언트)가 망쳤어”, 5xx은 “나(서버)가 망쳤어”. 이 다섯 계열을 외우면 브라우저 요청, 실행한 curl, 응용 프로그램 로그의 오류를 막론하고 어떤 HTTP 교환이든 한눈에 읽을 수 있습니다.
문제는 실사용 중인 코드가 60개가 넘고, 이웃한 코드 사이의 차이가 자못 미묘하다는 점입니다. 401 대 403, 302 대 307, 422 대 400. 이 페이지는 그 모두의 검색 가능한 참조입니다. 코드, IANA 이유 구문, 계열, 그리고 평이한 설명을 제공합니다. 숫자나 단어를 입력하면 표가 즉시 좁혀집니다.
사용 방법#
- 찾아보거나 검색하세요. 표는 계열(
1xx부터5xx까지)별로 그룹화된 모든 코드를 나열합니다. 위쪽의 검색 상자로 필터링하세요. - 생각하는 대로 검색하세요. 필터는 의도를 잘 이해합니다.
30이나418같은 숫자를 입력하면 접두사로 코드를 찾습니다.30은 전체3xx리다이렉트 계열을 띄웁니다.redirect,timeout,teapot같은 단어를 입력하면 대소문자 구분 없이 이유 구문과 설명을 검색합니다.
- 행을 읽으세요. 각 행은 코드(숫자), 이유 구문(“Not Found” 같은 표준 구문), 카테고리(현지화된 계열 라벨), 설명(그 코드가 언제 반환되는지에 대한 짧은 설명)을 보여줍니다. 표 아래의 상태 막대가 몇 행이 일치했는지 알려줍니다.
주요 특징#
- IANA 전체 세트와 사실상 표준 코드. 웹이 실제로 반환하는 모든 코드를 다룹니다.
100 Continue부터511 Network Authentication Required까지, WebDAV 전용207/208/226항목, 농담 코드418 I'm a Teapot, 법적으로 규정된451까지. - 접두사 인식 숫자 검색.
4를 입력하면 무작위 부분집합을 쏟아내지 않고, 모든4xx클라이언트 오류를 순서대로 보여줍니다. 기억나지 않는 계열을 탐색하는 정확한 방법입니다. - 이유 구문과 설명에 걸친 단어 검색. “rate”는
429 Too Many Requests를, “range”는416 Range Not Satisfiable을, “auth”는401과407모두를 띄웁니다. - 이유 구문은 보편적입니다. 구문(“Not Found”, “Gateway Timeout”)은 번역이 아니라 기술 식별자입니다. 서버가 실제로 회선에 보내는 것과 일치하므로 문서나 이슈 트래커에 바로 붙여넣을 수 있습니다.
- 브라우저에서만 실행. 데이터셋이 페이지와 함께 배포되고, 필터링은 네트워크 요청 없이 로컬에서 일어납니다.
실제 예시#
거의 모든 개발자가 한 번쯤 넘어지는 세 코드가 클라이언트 오류 트리오 401, 403, 404입니다. 숫자 40을 검색하면 한 화면에서 나란히 볼 수 있습니다.
- 401 Unauthorized — “인증이 필요하지만 실패했거나 제공되지 않았습니다.” 서버는 사용자가 누구인지 모릅니다. 해결: 자격 증명(로그인 토큰, API 키)을 보내세요.
- 403 Forbidden — “요청은 유효하지만 서버가 행동을 거부합니다(권한 부족).” 서버는 사용자가 누구인지 정확히 알며, 그래도 줄 수 없습니다. 해결: 다른 암호가 아니라 권한을 얻으세요.
- 404 Not Found — “요청한 리소스를 찾을 수 없습니다.” URL 자체가 틀렸거나 리소스가 사라졌습니다. 해결: 경로를 고치세요.
가장 유용한 구분은 401과 403입니다. “너를 몰라”(로그인) 대 “너를 알아, 그리고 안 돼”(접근 요청). 재인증은 403을 절대 고치지 못하고, URL 만지기는 401을 절대 고치지 못합니다.
두 번째 유용한 조회는 리다이렉트 계열입니다. 30을 검색하면 301과 302는 역사적으로 클라이언트가 다음 요청에서 메서드를 바꾸는 것을 허용했지만(POST가 GET으로 저하될 수 있음), 307과 308은 원래 메서드를 보존하기 위해 정확히 도입되었다는 것을 볼 수 있습니다. 그래서 폼 제출을 리다이렉트하는 현대 API가 301/302 대신 307/308을 가리키는 것입니다.
FAQ#
상태 코드의 첫째 자리는 무슨 의미인가요?#
계열을 정합니다. 1xx은 정보(서버가 “잠깐, 더 온다”고 말하는 중), 2xx은 성공, 3xx은 리다이렉션(다른 곳을 봐), 4xx은 클라이언트 오류(요청이 잘못됨), 5xx은 서버 오류(요청은 괜찮았지만 서버가 실패함)입니다. 나머지 두 자리는 그 계열 안의 특정 코드를 식별합니다.
418은 실제 상태 코드인가요?#
주번의 RFC에서 커피를 끓이기를 거부하는 찻주전지 이야기로 시작했으므로 프로덕션용은 아닙니다. 그렇긴 해도 일부 서비스는 장난스러운 “넌센스를 보냈다” 응답으로 진짜 418을 반환하며, 인식해 두면 해롭지 않습니다. 이 참조는 야생에서 만날 수 있어서 목록에 넣었습니다.
일부 코드가 WebDAV로 표시된 이유는?#
207 Multi-Status, 423 Locked, 507 Insufficient Storage 같은 코드는 공동 파일 편집을 위한 HTTP 확장인 WebDAV를 위해 정의되었습니다. 일반 웹 API에서는 드물지만 파일시스템 같은 인터페이스를 노출하는 시스템에서는 나타나므로, 설명에 WebDAV 출처를 적어 문맥이 이해되도록 했습니다.
이유 구문은 어디서 오나요?#
IANA에 등록된 표준 영어 이유 구문입니다. 서버가 상태 줄의 코드 뒤에 붙이는 문자열과 같습니다(예: HTTP/1.1 404 Not Found). 기술 식별자라 번역하지 않고 있는 그대로 보여줍니다. 페이지의 현지화 부분은 열 제목, 카테고리 라벨, 그리고 이 설명 텍스트입니다.