100ContinueRFC 9110 §15.2.1
POST 의 큰 본문을 보내기 전에 서버가 Expect: 100-continue 헤더를 받고 '계속 보내라' 신호. 클라이언트가 본문을 미리 안 보내고 헤더만 먼저 — 거부될 본문 절약.
101Switching ProtocolsRFC 9110 §15.2.2
WebSocket · HTTP/2 업그레이드 응답. Upgrade 헤더 받은 후 같은 connection 위에서 다른 프로토콜로 전환.
103Early HintsRFC 8297
메인 응답 도착 전에 미리 보내는 힌트 (Link: rel=preload). 브라우저가 CSS · JS 를 미리 fetch 시작 — TTFB 개선.
200OKRFC 9110 §15.3.1
요청이 성공했고 본문이 따라 옵니다. GET / POST / PUT 모두 사용. 응답 본문은 항상 채울 책임.
201CreatedRFC 9110 §15.3.2
리소스가 새로 만들어졌습니다. 보통 Location 헤더로 새 리소스 URL 을 함께. POST /users 의 정상 응답.
202AcceptedRFC 9110 §15.3.3
수신 됐지만 처리는 비동기. 백그라운드 잡 큐 · 메일 발송 · 영상 인코딩. 결과 조회용 폴링 URL 함께 줘야.
204No ContentRFC 9110 §15.3.5
성공이지만 본문 없음. PUT · DELETE · 폼 제출 후 redirect 자리에. Content-Length: 0 권장.
206Partial ContentRFC 9110 §15.3.7
Range 요청 응답 일부. 비디오 streaming · 큰 파일 분할 다운로드. Content-Range 헤더로 어느 구간인지 명시.
301Moved PermanentlyRFC 9110 §15.4.2
영구 이동. 검색엔진과 브라우저가 새 URL 을 캐시. 도메인 이전 / HTTPS 강제 시 정석. 메서드 변환 가능 — 보존 필요면 308.
302FoundRFC 9110 §15.4.3
임시 이동. 캐시 안 함. A/B 테스트 · 로그인 분기 · 일시 redirect. POST → GET 변환됨 (legacy 호환).
304Not ModifiedRFC 9110 §15.4.5
조건부 GET 의 캐시 일치. If-None-Match · If-Modified-Since 와 함께. 본문 없이 헤더만 — 대역폭 절약 핵심.
307Temporary RedirectRFC 9110 §15.4.8
302 와 같지만 메서드 보존. POST 가 다음 URL 에서도 POST. 임시 이동 + 메서드 유지.
308Permanent RedirectRFC 9110 §15.4.9
301 과 같지만 메서드 보존. 영구 이동 + 메서드 유지. REST API 의 정석 영구 redirect.
400Bad RequestRFC 9110 §15.5.1
요청 자체가 잘못. JSON 파싱 실패 · 잘못된 메서드 · 형식 오류. 4xx 의 default — 다른 코드가 안 맞을 때.
401UnauthorizedRFC 9110 §15.5.2
인증 필요. WWW-Authenticate 헤더로 어떤 방식 (Basic · Bearer · Digest) 인지 알림. 인증 자체가 없거나 실패 (token 만료).
402Payment RequiredRFC 9110 §15.5.3
사용 거의 안 됨. Stripe 등 결제 SaaS 가 카드 거부 시 사용. 표준에선 'reserved'.
403ForbiddenRFC 9110 §15.5.4
인증은 됐지만 권한 부족. 토큰 유효해도 그 리소스 접근 권한 X. 401 과 헷갈리지 말 것 — 401 은 '누구냐', 403 은 '안 됨'.
404Not FoundRFC 9110 §15.5.5
리소스 없음. 라우트 자체가 없거나 ID 매칭 안 됨. 권한 노출 회피 시 403 대신 404 도 흔함 (GitHub 패턴).
405Method Not AllowedRFC 9110 §15.5.6
메서드 불가. 라우트는 있지만 그 메서드 (GET / POST 등) 가 정의 안 됨. Allow 헤더에 허용 메서드 나열 권장.
406Not AcceptableRFC 9110 §15.5.7
Accept 헤더에 명시한 형식 (예: application/xml) 을 서버가 못 줌. content negotiation 실패. 거의 안 봄.
408Request TimeoutRFC 9110 §15.5.9
클라이언트가 너무 느려 timeout. 보통 keep-alive idle 만료. 클라이언트가 connection 새로 열고 재시도.
409ConflictRFC 9110 §15.5.10
현재 상태와 충돌. 같은 이메일 가입 시도, 동시 편집, optimistic lock 위반. 본문에 충돌 사유 기재.
410GoneRFC 9110 §15.5.11
영구 삭제됨. 404 와 다름 — 의도적으로 '없앴다' 신호. SEO 에서 빠른 deindex 신호.
413Content Too LargeRFC 9110 §15.5.14
요청 본문이 너무 큼. 업로드 한도 초과. 서버 권장 max size 안내 (Retry-After 또는 본문).
415Unsupported Media TypeRFC 9110 §15.5.16
Content-Type 미지원. application/x-www-form-urlencoded 만 받는 endpoint 에 application/json 보낸 경우.
418I'm a teapotRFC 2324
I am a teapot. RFC 2324 의 만우절 농담. 일부 사이트가 봇 차단 신호로 사용 (예전 Google).
422Unprocessable ContentRFC 9110 §15.5.21
JSON 형식은 맞지만 의미가 잘못. validation 실패. 400 보다 구체적 — Laravel · FastAPI · Rails 가 흔히 사용.
429Too Many RequestsRFC 6585 §4
rate limit 초과. Retry-After 헤더에 재시도 지연 시간 (초 또는 HTTP date) 명시.
451Unavailable For Legal ReasonsRFC 7725
법적 사유로 차단 (검열). RFC 7725 — Fahrenheit 451 에서. EU GDPR · 한국 방심위 · 미국 DMCA.
500Internal Server ErrorRFC 9110 §15.6.1
서버 코드 에러. exception · null pointer · DB 다운. 사용자에게는 일반 메시지, 로그에는 스택 트레이스.
501Not ImplementedRFC 9110 §15.6.2
메서드 자체를 서버가 모름 (PROPFIND 같은). 405 와 다름 — 405 는 라우트는 있고 메서드만 안 됨.
502Bad GatewayRFC 9110 §15.6.3
프록시가 upstream 에서 잘못된 응답. nginx · CDN 뒤 origin 이 죽었거나 잘못 응답.
503Service UnavailableRFC 9110 §15.6.4
서비스 일시 불가. 재시작 · 과부하 · 점검. Retry-After 권장. 503 + Retry-After 면 검색엔진이 재시도.
504Gateway TimeoutRFC 9110 §15.6.5
프록시가 upstream 응답을 시간 안에 못 받음. 502 와 다름 — 502 는 잘못된 응답, 504 는 응답 없음.
511Network Authentication RequiredRFC 6585 §6
captive portal — 호텔 · 공항 Wi-Fi 'agree to terms' 페이지로 redirect 시 사용. RFC 6585.