Skip to content

HTTP 상태 코드 일람 및 요약표

정보 응답 (1xx)

상태 코드 사유 구절 의미 HTTP 버전
100 Continue (계속) 클라이언트는 요청을 계속 보내야 합니다. 이 임시 응답은 클라이언트의 요청 일부가 서버에 수신되었으며 아직 거부되지 않았음을 알리는 데 사용됩니다. 클라이언트는 요청의 나머지를 계속 보내야 하며, 요청이 이미 완료된 경우 이 응답을 무시해야 합니다. 서버는 전체 요청이 완료된 후 최종 응답을 보내야 합니다. HTTP/1.1 지원
101 Switching Protocols (프로토콜 전환) 서버가 클라이언트의 요청을 이해했으며, Upgrade 메시지 헤더를 통해 클라이언트에게 다른 프로토콜을 사용하여 요청을 완료할 것임을 알립니다. 이 응답의 마지막 빈 줄을 보낸 후 서버는 Upgrade 메시지 헤더에 정의된 프로토콜로 전환합니다. 이 조치는 새로운 프로토콜로의 전환이 더 유리할 때만 수행되어야 합니다. 예를 들어, 구버전보다 새로운 버전의 HTTP로 전환하는 것이 더 유리하거나, 이러한 기능을 활용하는 리소스를 전달하기 위해 실시간 동기 프로토콜로 전환하는 것이 더 유리한 경우입니다. HTTP/1.1 지원

성공 응답 (2xx)

상태 코드 사유 구절 의미 HTTP 버전
200 OK (성공) 요청이 성공했습니다. 성공의 의미는 요청에 사용된 메서드에 따라 다릅니다. - GET: 리소스가 추출되어 응답 본문으로 클라이언트에 반환되었습니다. - HEAD: 엔터티 헤더가 응답 헤더로 클라이언트에 반환되었습니다. - POST: 서버가 클라이언트가 보낸 데이터를 처리한 후 적절한 리소스가 응답 본문으로 클라이언트에 반환되었습니다. - TRACE: 서버가 받은 요청 메시지가 응답 본문으로 클라이언트에 반환되었습니다. HTTP/0.9 지원
201 Created (생성됨) 요청이 성공했으며 요청의 필요에 따라 새로운 리소스가 생성되었습니다. 이는 일반적으로 PUT 메서드에 의해 얻어지는 응답 코드입니다. HTTP/0.9 지원
202 Accepted (수락됨) 서버가 요청을 수락했으나 아직 처리하지 않았습니다. 거부될 가능성이 있는 것처럼 요청이 최종적으로 실행될 수도 있고 실행되지 않을 수도 있습니다. 비동기 작업에서는 이 상태 코드를 보내는 것보다 더 편리한 방법이 없습니다. 202 상태 코드 응답을 반환하는 목적은 서버가 다른 프로세스(예: 하루에 한 번만 실행되는 배치 작업)에 대한 요청을 수락할 수 있도록 하여 배치 작업이 완료될 때까지 클라이언트를 연결 상태로 유지할 필요가 없도록 하는 것입니다. 202 상태 코드를 반환하는 응답에는 엔터티의 현재 처리 상태를 나타내는 정보와 처리 상태 모니터 또는 상태 예측에 대한 포인터가 포함되어야 사용자가 작업 완료 여부를 가늠할 수 있습니다. HTTP/0.9 지원
203 Non-Authoritative Information (신뢰할 수 없는 정보) 서버가 요청을 성공적으로 처리했지만 반환된 엔터티 헤더 메타 정보가 원본 서버에서 유효한 결정적 세트가 아니며 로컬 또는 타사 사본에서 가져온 것입니다. 그렇지 않은 경우에는 200 상태 코드를 사용하는 것이 가장 적절합니다. HTTP/0.9 및 1.1
204 No Content (내용 없음) 응답 내용이 없으며 응답 헤더만 있습니다. 응답 헤더도 유용할 수 있습니다. 사용자 에이전트는 새로운 응답 헤더를 기반으로 해당 리소스의 캐시 정보를 업데이트할 수 있습니다. HTTP/0.9 지원
205 Reset Content (내용 재설정) 요청을 보낸 창의 문서 뷰를 재설정하도록 사용자 에이전트에 지시합니다. HTTP/1.1 지원
206 Partial Content (부분적 내용) 클라이언트가 range 헤더 필드를 사용하여 파일을 세그먼트 단위로 다운로드할 때 사용하는 상태 코드입니다. HTTP/1.1 지원

리다이렉션 메시지 (3xx)

상태 코드 사유 구절 의미 HTTP 버전
300 Multiple Choice (여러 선택항목) 요청에 대해 가능한 응답이 여러 개 있으며 사용자 에이전트 또는 사용자가 그 중 하나를 선택해야 합니다. 서버는 사용자를 대신하여 선택할 수 있는 기준이 없습니다. HTTP/1.0 이상
301 Moved Permanently (영구 이동) 이 상태 코드는 요청된 URI 리소스 경로가 변경되었음을 나타내며 새로운 URL은 응답의 Location 헤더 필드에서 확인할 수 있습니다. HTTP/0.9 지원
302 Found (발견/임시 이동) 이 상태 코드는 요청된 URI 리소스 경로가 임시로 변경되었음을 나타내며 앞으로도 계속 변경될 수 있습니다. 따라서 클라이언트는 향후 액세스를 위해 이 URI를 계속 사용해야 합니다. 새로운 URL은 응답의 Location: 헤더 필드에서 확인할 수 있습니다. HTTP/0.9 지원
303 See Other (다른 소스 참조) 서버는 클라이언트가 GET 메서드를 사용하여 다른 URI에 액세스하도록 유도하기 위해 이 응답을 보냅니다. HTTP/0.9 및 1.1
304 Not Modified (수정되지 않음) 요청된 내용이 마지막 액세스 이후 변경되지 않았음을 클라이언트에 알립니다. 클라이언트는 브라우저 캐시에서 직접 리소스를 가져올 수 있습니다. HTTP/0.9 지원
305 Use Proxy (프록시 사용) 요청된 리소스는 프록시를 통해 액세스해야 합니다. 보안상의 이유로 이 상태 코드는 널리 지원되지 않습니다. HTTP/1.1 지원
306 unused (사용되지 않음) 이 상태 코드는 더 이상 사용되지 않습니다. 원래 HTTP 1.1 사양의 구버전에서 사용되었습니다. HTTP/1.1 지원
307 Temporary Redirect (임시 리다이렉션) 서버는 클라이언트가 동일한 메서드를 사용하여 다른 URI에 액세스하여 원하는 리소스를 얻도록 유도하기 위해 이 응답을 보냅니다. 새로운 URL은 응답의 Location: 헤더 필드에서 확인할 수 있습니다. 302 상태 코드와 동일한 의미를 가지며 두 액세스 모두 동일한 메서드(GET, POST)를 사용해야 합니다. HTTP/1.1 지원
308 Permanent Redirect (영구 리다이렉션) 요청된 리소스가 영구적으로 다른 URI에 위치하게 됩니다. 새로운 URL은 응답의 Location: 헤더 필드에서 확인할 수 있습니다. 301 상태 코드와 동일한 의미를 가지며 두 액세스 모두 동일한 메서드(GET, POST)를 사용해야 합니다. HTTPbis (실험적 초안)

클라이언트 에러 응답 (4xx)

상태 코드 사유 구절 의미 HTTP 버전
400 Bad Request (잘못된 요청) 서버가 보낸 요청의 구문 오류로 인해 요청을 정상적으로 읽을 수 없습니다. HTTP/0.9 지원
401 Unauthorized (권한 없음) 요청된 내용을 얻으려면 인증이 필요합니다. 403 오류와 유사하지만 401 오류 이후에는 올바른 계정과 비밀번호를 입력하면 인증을 통과할 수 있다는 점이 다릅니다. HTTP/0.9 지원
402 Payment Required (결제 필요) 이 상태 코드는 나중에 사용하기 위해 예약되었습니다. 이 코드를 만든 당초 목적은 디지털 결제 시스템을 위한 것이었으나 아직 실용화되지 않았습니다. HTTP/0.9 및 1.1
403 Forbidden (금지됨) 클라이언트에 요청된 내용에 액세스할 권한이 없으며 서버가 요청을 거부합니다. HTTP/0.9 지원
404 Not Found (찾을 수 없음) 서버가 요청된 리소스를 찾을 수 없습니다. 이것이 자주 발생하기 때문에 이 상태 코드는 웹 브라우징 중에 매우 흔하게 볼 수 있습니다. HTTP/0.9 지원
405 Method Not Allowed (허용되지 않은 메서드) 요청에 사용된 메서드가 서버에 의해 금지되었습니다. RFC2616은 GETHEAD 메서드를 금지할 수 없도록 규정하고 있습니다. HTTP/1.1 지원
406 Not Acceptable (수용할 수 없음) 서버 주도형 콘텐츠 협상을 거친 후 클라이언트에 반환할 적절한 콘텐츠를 찾지 못했습니다. HTTP/1.1 지원
407 Proxy Authentication Required (프록시 인증 필요) 상태 코드 401과 유사하지만 프록시를 통한 인증이 필요합니다. HTTP/1.1 지원
408 Request Timeout (요청 시간 초과) 클라이언트가 서버가 대기 준비가 된 시간 내에 요청 전송을 완료하지 않았습니다. 이는 서버가 클라이언트와의 연결을 끊는다는 것을 의미합니다. 이 응답은 HTTP 사전 연결 메커니즘을 사용하여 브라우징 속도를 높이기 위해 Chrome이나 IE9 등의 다른 브라우저에서 더 흔하게 나타납니다. 또한 일부 서버는 이러한 응답을 보내지 않고 직접 연결을 끊는다는 점에 유의하십시오. HTTP/1.1 지원
409 Conflict (충돌) 이 요청이 서버의 현재 상태와 충돌합니다. HTTP/1.1 지원
410 Gone (사라짐) 요청된 리소스가 삭제되었습니다. HTTP/1.1 지원
411 Length Required (길이 필요) 서버가 이 요청에 Content-Length 헤더 필드가 필요한데 클라이언트가 전송하지 않았으므로 요청을 거부합니다. HTTP/1.1 지원
412 Precondition Failed (사전 조건 실패) 서버가 리소스를 가져올 때 클라이언트가 요청 헤더 필드에 설정한 사전 조건을 충족하지 못했습니다. HTTP/1.1 지원
413 Request Entity Too Large (요청 엔터티가 너무 큼) 요청 엔터티의 크기가 서버가 설정한 최대 제한을 초과합니다. 서버는 HTTP 연결을 닫고 Retry-After 헤더 필드를 반환할 수 있습니다. HTTP/1.1 지원
414 Request-URI Too Long (요청 URI가 너무 긺) 클라이언트 요청에 포함된 URI 주소가 서버가 처리하기에 너무 깁니다. HTTP/1.1 지원
415 Unsupported Media Type (지원되지 않는 미디어 유형) 서버가 클라이언트가 요청한 미디어 유형을 지원하지 않으므로 요청을 거부합니다. HTTP/1.1 지원
416 Requested Range Not Satisfiable (요청 범위가 일치하지 않음) 요청에 포함된 Range 헤더 필드를 충족할 수 없습니다. 일반적으로 Range 내부의 숫자 범위가 요청된 리소스의 크기를 초과하기 때문입니다. HTTP/1.1 지원
417 Expectation Failed (기대치 실패) 요청 헤더 Expect에 지정된 기대 내용을 서버가 충족할 수 없습니다. HTTP/1.1 지원

서버 에러 응답 (5xx)

상태 코드 사유 구절 의미 HTTP 버전
500 Internal Server Error (서버 내부 에러) 서버가 알 수 없는 해결할 수 없는 문제에 봉착했습니다. HTTP/0.9 지원
501 Not Implemented (미구현) 서버가 요청에 사용된 메서드를 지원하지 않습니다(예: POST, PUT 등). RFC2616 사양에서 서버가 구현해야 한다고 규정한 메서드는 GETHEAD뿐입니다. HTTP/0.9 지원
502 Bad Gateway (불량 게이트웨이) 서버가 게이트웨이 역할을 하고 있으며 업스트림 서버로부터 잘못된 HTTP 응답을 받았습니다. HTTP/0.9 지원
503 Service Unavailable (서비스를 사용할 수 없음) 일시적인 서버 유지 관리 또는 과부하로 인해 서버가 현재 요청을 처리할 수 없습니다. 이 상황은 일시적이며 일정 시간 후에 회복됩니다. 지연 시간을 추정할 수 있는 경우 응답에 이 지연 시간을 나타내는 Retry-After: 헤더를 포함할 수 있습니다. Retry-After: 정보가 제공되지 않으면 클라이언트는 이를 500 응답으로 처리해야 합니다. 또한 이 경우 서버의 문제를 설명하는 친절한 페이지가 반환되어야 하며, 일반적으로 이러한 오류 팁 페이지는 클라이언트에 의해 캐시되어서는 안 되므로 캐시 관련 HTTP 헤더 정보도 포함되어야 합니다. HTTP/0.9 지원
504 Gateway Timeout (게이트웨이 시간 초과) 서버가 게이트웨이 역할을 하고 있으며 업스트림 서버로부터 클라이언트에 반환할 적시 응답을 얻지 못했습니다. HTTP/1.1 지원
505 HTTP Version Not Supported (지원되지 않는 HTTP 버전) 서버가 클라이언트가 보낸 HTTP 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않습니다. HTTP/1.1 지원