1998년 Hyper Text Coffee Pot Control Protocol에서 비롯된 만우절 농담입니다. 커피를 내리기를 거부하는 주전자를 뜻합니다. HTTP에서는 사용되지 않는 코드로 예약되어 있지만, 일부 서버는 이스터 에그로 반환하거나 원치 않는 봇을 거부할 때 사용합니다.
표준 코드가 아닙니다. 원본 서버의 SSL 인증서가 유효하지 않고 Full (strict) SSL 모드가 활성화되어 있을 때 Cloudflare가 반환합니다.
정의: Cloudflare
사용 방법
404와 같은 코드 번호를 입력하거나, 모든 서버 오류를 보려면 5만 입력하세요. “redirect” 또는 “timeout” 같은 키워드로도 검색할 수 있습니다.
클래스 필터로 정보 응답, 성공, 리디렉션, 클라이언트 오류 또는 서버 오류만 표시하세요.
코드 옆의 “링크 복사”를 사용해 버그 신고 등에 공유할 수 있는 해당 코드의 바로가기 링크를 복사하세요.
작동 방식
모든 HTTP 응답은 세 자리 상태 코드로 시작합니다. 첫 번째 숫자가 분류를 나타냅니다. 1xx는 정보 응답, 2xx는 성공, 3xx는 리디렉션, 4xx는 요청으로 인한 오류, 5xx는 서버 측 오류입니다. 특정 코드를 인식하지 못하는 클라이언트는 해당 분류의 x00 코드처럼 처리하므로, 알 수 없는 4xx 코드는 400처럼 처리됩니다.
기본 코드는 RFC 9110(HTTP Semantics, 2022)에 정의되어 있으며, 이 문서는 이전 RFC 7231을 대체했습니다. 그 밖의 코드는 확장 규격에서 비롯되었습니다. WebDAV(RFC 4918), 428·429·431·511을 정의한 RFC 6585, 451을 정의한 RFC 7725, 425를 정의한 RFC 8470이 이에 해당합니다. RFC 9110에서는 코드 두 개의 이름도 바뀌었습니다. 413은 이제 “Content Too Large”, 422는 “Unprocessable Content”이며, 이전 이름인 “Payload Too Large”와 “Unprocessable Entity”로 표시되는 경우도 있습니다.
로그에서 볼 수 있는 일부 코드는 표준이 아닙니다. nginx는 내부적으로 444 및 494–499를 사용하며(499는 클라이언트가 기다리기를 포기했음을 나타냄), Cloudflare는 오리진 서버에서 적절한 응답을 받지 못하면 520–526을 반환합니다. 이 코드들은 목록에서 “비표준”으로 표시됩니다. “Not Found”와 같은 상태 문구는 사양에 쓰인 영어 그대로 표시됩니다. HTTP/2와 HTTP/3에서는 숫자만 전송합니다.
예시
사이트 이전 시 301 또는 308
둘 다 영구 리디렉션입니다. 일반적인 페이지 이동에는 301을 사용하세요. 클라이언트가 POST 또는 PUT 요청을 새 URL에 다시 보내야 한다면 308을 사용하세요. 일부 클라이언트는 301을 받은 뒤 POST를 GET으로 바꾸기 때문입니다.
401과 403의 차이
API는 토큰이 없거나 만료된 토큰이 전송되면 401을 반환하므로 클라이언트에서 로그인해야 합니다. 토큰은 유효하지만 사용자에게 권한이 없으면 403을 반환하므로 다시 로그인해도 해결되지 않습니다.
nginx 뒤에서 발생한 502 진단
nginx에서 502 Bad Gateway가 발생했다면 뒤에 있는 애플리케이션이 제대로 응답하지 않은 것입니다. 앱 프로세스가 실행 중인지, 로그에 어떤 내용이 기록됐는지 확인하세요. 504는 응답이 너무 늦었음을 뜻합니다.
자주 묻는 질문
404와 410은 어떻게 다른가요?
404는 서버가 리소스를 찾을 수 없다는 뜻이며, 앞으로도 찾을 수 없을지는 나타내지 않습니다. 410은 리소스가 의도적으로 삭제되어 다시 제공되지 않는다는 뜻이며, 검색 엔진이 해당 URL을 더 빨리 색인에서 제외하는 데 도움이 됩니다.
유효성 검사 오류에는 400과 422 중 무엇을 반환해야 하나요?
둘 다 사용됩니다. 서버가 해석할 수 없는 요청(예: 형식이 잘못된 JSON)에는 400이 적합합니다. 요청은 올바르게 해석되지만 값이 유효하지 않은 경우(예: @가 없는 이메일 필드)에는 422가 적합합니다.
418 I'm a teapot은 실제 상태 코드인가요?
1998년 만우절에 발표된 RFC에서 유래했습니다. RFC 9110은 418을 다른 용도로 지정하지 않도록 미사용 코드로 남겨 두었습니다. 일부 서버가 농담으로 반환하기도 하지만, 표준상 의미는 없습니다.
499는 어디서 유래했나요?
499는 nginx 전용 코드입니다. 서버가 응답을 보내기 전에 클라이언트가 연결을 닫으면 nginx 로그에 표시됩니다. 클라이언트는 499를 받지 않습니다. 보통 응답이 느리거나 클라이언트 측에서 시간이 초과된 경우를 나타냅니다.
검색 엔진은 302를 301과 동일하게 취급하나요?
302는 일시적인 이동을 나타내므로 검색 엔진은 보통 처음에는 원래 URL을 색인에 유지합니다. 302가 오랫동안 유지되면 Google이 영구 리디렉션으로 취급할 수 있습니다. 영구적으로 이동하는 경우에는 301 또는 308을 사용하세요.
개인정보 보호
목록은 페이지에 포함되어 있습니다. 검색과 필터링은 브라우저에서 처리되며 검색어는 어디에도 전송되지 않고 분석 데이터에도 포함되지 않습니다.