HTTP 상태 코드 정리

jinkyu Seok·2025년 1월 26일

기초학습

목록 보기
8/11

1XX: Informational(정보 제공)

: 클라이언트의 요청을 받았으며 작업을 계속 진행하고 있다. 1xx 계열의 응답은 HTTP/1.1 클라이언트에게만 보낼 수 있으며 응답은 바디 없이 상태 라인, 헤더(생략 가능), 빈 줄로 종료됩니다.

상태 코드상태 텍스트의미설명
100Continue계속클라이언트가 요청 헤더에 'Expect: 100-continue'를 보내고 서버가 이를 처리할 수 있을 때 응답
101Switching Protocols프로토콜 전환프로토콜을 HTTP 1.1에서 업그레이드할 때 Upgrade 응답 헤더에 표시합니다. 현재는 HTTP 1.1이 최신이므로 사용할 일이 없습니다.
102Processing처리중서버가 처리하는데 오랜 시간이 예상될 때 타임아웃 방지용으로 전송

2XX: Success(성공)

: 클라이언트가 요청한 동작을 수신하여 이해하였고 승낙하였으며 성공적으로 처리하였다.

상태 코드상태 텍스트의미설명
200OK성공서버가 요청을 성공적으로 처리하였다.
201Created생성됨요청이 처리되어서 새로운 리소스가 생성되었다. 응답 헤더 Location에 새로운 리소스의 절대 URI를 기록합니다.
202Accepted허용됨요청은 접수하였지만, 처리가 완료되지 않았다. 응답 헤더의 Location, Retry-After를 참고하여 클라이언트는 다시 요청을 보냅니다.
203Non-Authoritative Information신뢰할 수 없는 정보응답 헤더가 오리지널 서버로부터 제공된 것이 아니다. 프록시 서버가 응답 헤더에 주석을 덧붙인 경우가 하나의 예입니다.
204No Content콘텐츠 없음처리를 성공하였지만, 클라이언트에게 돌려줄 콘텐츠가 없다. 응답에는 헤더만 있고 바디는 없습니다. DELETE 요청에 대한 응답에 많이 사용됩니다.
205Reset Content콘텐츠 재설정처리를 성공하였고 브라우저의 화면을 리셋하라. 예를 들어 브라우저가 입력 폼을 보여 주고 있을 때 이 응답 코드를 받으면 브라우저는 모든 입력 항목을 리셋하고 재입력할 수 있는 상태가 됩니다.
206Partial Content일부 콘텐츠콘텐츠의 일부만을 보낸다. 응답 헤더의 Content-Range에 응답 콘텐츠의 범위를 기록합니다. 예를 들어 1,500 바이트의 리소스 중에서 처음의 500바이트만을 보낼 때 사용할 수 있습니다.
207Multi-Status다중 상태(WebDAV) 처리 결과의 스테이터스가 여러 개이다.207 응답은 성공을 뜻하지만, 각각의 처리 결과가 성공인지는 바디를 봐야 알 수 있습니다.

3XX: Redirection(리다이렉션)

: 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.

상태 코드상태 텍스트의미설명
300MultipleChoices여러 선택항목 선택 항목이 여러 개 있다. 지정한 URI에 대해서 콘텐츠 협상을 수행한 결과 서버에서 콘텐츠를 결정하지 못하고 클라이언트에게 복수 개의 링크를 응답할 때 사용합니다.
301Moved Permanently영구 이동요청한 리소스가 새로운 URI로 영구적으로 이동. 이동할 곳의 새로운 URI는 응답 헤더 Location에 기록합니다.
302Found임시 이동요청한 리소스가 일시적으로 다른 URI에 위치. 요청한 URI가 없으므로 클라이언트 메소드를 그대로 유지한 채 응답 헤더 Location에 표시된 다른 URI로 요청을 재송신할 필요가 있습니다. 302의 의미를 정확하게 개선해서 307을 정의하였으므로 이 응답 코드의 사용은 권장하지 않습니다.
303See Other다른 위치 보기다른 URI로 요청하라는 응답. 요청에 대한 처리 결과를 응답 헤더 Location에 표시된 URI에서 GET으로 취득할 수 있습니다. 브라우저의 폼 요청을 POST로 처리하고 그 결과 화면으로 리다이렉트시킬 때 자주 사용하는 응답 코드입니다.
304Not Modified수정되지 않음마지막 요청 이후 요청한 페이지가 수정되지 않음. If-Modified-Since와 같은 조건부 GET 요청일 때 지정한 리소스가 갱신되지 않았음을 알려 줍니다. 이 응답 코드에는 바디가 없습니다.
305Use Proxy프록시 사용지정한 리소스에 액세스하려면 프록시를 통해야 한다. 응답 헤더 Location에 프록시의 URI를 기록합니다.
307Temporary Redirect임시 리다이렉션302와 유사하나 HTTP 메소드가 변경되지 않음

4XX: Client Error(클라이언트 에러)

: 클라이언트의 요청에 오류가 있는 경우 발생하는 상태 코드입니다.

상태 코드상태 텍스트의미설명
400Bad Request잘못된 요청요청의 구문이 잘못됨. 클라이언트가 모르는 4xx 응답 코드도 400과 동일하게 처리
401Unauthorized권한 없음리소스 접근 권한 없음. WWW-Authenticate 헤더에 인증 방식 지정
402Payment Required결제 필요결제가 필요한 리소스 (실제로는 사용되지 않음)
403Forbidden금지됨인증과 무관하게 접근이 금지됨
404Not Found찾을 수 없음요청한 리소스가 존재하지 않음
405Method Not Allowed허용되지 않은 메소드해당 URI가 지정 메소드를 지원하지 않음
406Not Acceptable수용할 수 없음Accept-* 헤더 관련 처리 불가
407Proxy Authentication Required프록시 인증 필요프록시 서버 인증 필요
408Request Timeout요청 시간초과서버에서 요청 대기 중 타임아웃 발생
409Conflict충돌요청 수행 중 충돌 발생 (예: 중복된 사용자명)
410Gone사라짐리소스가 영구적으로 삭제됨
411Length Required길이 필요Content-Length 헤더 필요
412Precondition Failed사전 조건 실패조건부 요청의 사전 조건 불일치
413Request Entity Too Large요청 객체가 너무 큼요청 메시지가 너무 큼
414Request-URI Too Large요청 URI가 너무 김URI가 너무 긺
415Unsupported Media Type지원되지 않는 미디어 유형서버가 지원하지 않는 미디어 타입 요청
416Range Not Satisfiable처리할 수 없는 요청 범위요청한 리소스의 범위가 맞지 않음
417Expectation Failed예상 실패Expect 헤더를 서버가 이해할 수 없음
422Unprocessable Entity처리할 수 없는 엔티티(WebDAV) XML 구문은 맞지만 의미상 오류
423Locked잠김(WebDAV) 리소스가 잠겨있음
424Failed Dependency의존 관계로 실패(WebDAV) 다른 작업 실패로 인한 실패
426Upgrade Required업그레이드 필요프로토콜 업그레이드 필요
428Precondition Required사전 조건 필요사전 조건 지정 헤더 필요
429Too Many Requests너무 많은 요청주어진 시간 내 너무 많은 요청 발생
431Request Header Fields Too Large너무 큰 헤더헤더가 너무 큼
444Connection Closed Without Response응답 없이 연결 닫음(NGINX) 악의적 요청에 대한 무응답 종료
451Unavailable For Legal Reasons법적 사유로 불가법적 문제로 인한 접근 불가

5XX: Server Error(서버 에러)

: 클라이언트의 요청은 유효하나 서버가 처리에 실패한 경우입니다.

상태 코드상태 텍스트의미설명
500Internal Server Error내부 서버 오류서버 에러 발생. 알 수 없는 5xx 코드도 500과 동일 처리
501Not Implemented구현되지 않음요청한 메소드가 서버에서 구현되지 않음
502Bad Gateway불량 게이트웨이게이트웨이/프록시가 업스트림으로부터 잘못된 응답 수신
503Service Unavailable서비스 제공불가서버 과부하나 점검으로 일시적 서비스 중단
504Gateway Timeout게이트웨이 시간초과게이트웨이/프록시가 업스트림 응답 대기 중 타임아웃
505HTTP Version Not SupportedHTTP 버전 미지원요청된 HTTP 버전을 서버가 지원하지 않음
507Insufficient Storage용량 부족(WebDAV) 서버 저장 공간 부족

💡 참고:

  • 1xx 응답은 HTTP/1.1에서만 사용됩니다.
  • 2xx 응답은 요청이 성공적으로 처리되었음을 의미합니다.
  • 3xx 응답은 클라이언트가 요청을 완료하기 위해 추가 작업이 필요함을 의미합니다.
  • 4xx 에러는 클라이언트 측의 문제로 발생하는 에러입니다.
  • 5xx 에러는 서버 측의 문제로 발생하는 에러입니다.
  • 위에 명시되지 않은 코드들은 현재 할당되지 않은 상태 코드입니다.

0개의 댓글