[기획] HTTP 상태 코드 정리

상태 코드는 세 자리 숫자로 구성되며 첫 번째 숫자는 1~5입니다.

첫 번째 숫자가 4와 5이면 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야 할 정보입니다.

  • 1xx(정보): 귀하의 요청이 접수되었으며 프로세스를 계속 진행하겠습니다.

  • 2xx(성공): 요청이 성공적으로 수신, 확인 및 수락되었습니다.

  • 3xx(리디렉션): 요청을 완료하려면 추가 조치가 필요합니다.

  • 4xx(클라이언트 오류): 요청 구문이 올바르지 않거나 요청을 처리할 수 없습니다.

  • 5xx(서버 오류): 서버가 분명히 유효한 요청을 수행할 수 없습니다.

1XX: 정보용 회신

상태 코드가 “1”로 시작하면 서버가 요청을 받았고 서버에 연결된 클라이언트가 작업을 계속해야 함을 의미합니다.

HTTP 1.0은 이 코드를 지원하지 않습니다.

100 다음

진행 중임을 나타내는 응답 코드입니다.

지금까지 진행 상황이 양호하며 클라이언트가 요청을 계속하거나 이미 요청을 완료한 경우 무시할 수 있음을 나타냅니다.

101 중재 프로토콜

101은 클라이언트가 보낸 업그레이드 요청 헤더에 대한 응답으로 전송됩니다.

이 응답 코드는 클라이언트가 보낸 업그레이드 요청 헤더에 대한 응답에 포함되며 서버가 프로토콜을 변경하고 있음을 나타냅니다.

이 코드는 websocket 프로토콜을 토글할 때 사용됩니다.

102 처리(WebDAV)

이 응답 코드는 서버가 요청을 수신하여 처리 중이지만 아직 유효한 응답을 제공할 수 없음을 알려줍니다.

2XX: 성공적인 답장

200 확인

요청이 성공했습니다.

요청에 대한 응답으로 정보가 반환됩니다.

201 생성

요청이 성공하여 새 리소스가 생성되었습니다.

이 응답은 일반적으로 POST 요청 또는 PUT 요청을 따릅니다.

202 수락됨

귀하의 요청을 받았지만 처리할 수 없습니다.

이 응답은 요청을 처리한 다음 HTTP를 통해 비동기 응답을 보낸 결과를 명시적으로 나타내지 않습니다.

다양한 프로세스에서 처리하거나 서버에서 요청을 처리하거나 일괄 처리를 수행할 때 사용합니다.

203 구속력 없는 정보

이 응답 코드는 반환된 메타 정보가 원본 서버의 정보와 일치하지 않고 로컬 또는 타사 복사본에서 온 것임을 의미합니다.

이러한 조건에서 200 OK 응답은 이 응답보다 우선해야 합니다.

204 콘텐츠 없음

요청에 대해 콘텐츠를 보낼 수 없지만 헤더는 유용할 수 있습니다.

사용자 에이전트는 리소스가 캐시된 헤더를 새 헤더로 업데이트할 수 있습니다.

205 리셋 콘텐츠

이 응답 코드는 요청이 완료된 후 이 요청을 보낸 문서 보기를 재설정하도록 사용자 에이전트에 지시합니다.

206부 내용

이 응답 코드는 클라이언트가 여러 스트림을 분할하고 다운로드하기 위해 범위 헤더를 보냈기 때문에 사용됩니다.

클라이언트가 인계를 시도하면 웹 서버는 “206 Partial Content”를 응답 코드로 하여 범위 헤더에 지정된 데이터 부분(바이트)부터 전송을 시작합니다.

207 다중 상태

다중 상태 응답은 여러 리소스에 여러 상태 코드가 있을 때 적절한 정보를 전달합니다.

이 코드는 WebDAV(Web Distributed Authoring and Versioning)에 사용됩니다.

208 이미 보고됨

동일한 컬렉션에 바인딩된 여러 내부 구성원을 반복적으로 열거하는 것을 방지하는 데 사용되는 Prostat 응답 특성(속성과 상태의 합성어). 이 코드는 WebDAV(Web Distributed Authoring and Versioning)에 사용됩니다.

226 메신저 사용( HTTP 델타 인코딩 )

서버가 GET 요청에 대한 리소스 커밋을 이행했으며 응답은 하나 이상의 인스턴스 작업이 현재 인스턴스에 적용되었음을 나타냅니다.

3XX: 리디렉션 메시지

300개의 객관식

요청에 대해 하나 이상의 응답이 있을 수 있습니다.

사용자 에이전트 또는 사용자는 둘 중 하나를 선택해야 합니다.

답변 중 하나를 선택하는 표준화된 절차는 없습니다.

301 영구적으로 이동됨

이 응답 코드는 요청된 리소스의 URI가 변경되었음을 의미합니다.

새 URI가 응답에 잠재적으로 지정될 수 있습니다.

302개 찾음

이 응답 코드는 요청한 리소스의 URI가 일시적으로 변경되었음을 의미합니다.

신규 및 변경된 URI는 나중에 생성할 수 있습니다.

따라서 클라이언트는 동일한 URI에 대한 향후 요청을 만들어야 합니다.

303 기타 참조

이것은 클라이언트가 요청한 자원이 다른 URI에서 GET 요청을 통해 검색되어야 할 때 서버가 클라이언트에게 직접 보내는 응답입니다.

304 변경되지 않음

이것은 캐싱 목적으로 사용됩니다.

이렇게 하면 응답이 변경되지 않았음을 클라이언트에 알릴 수 있으므로 클라이언트는 캐시된 버전의 응답을 계속 사용할 수 있습니다.

305 프록시 사용

이전 버전의 HTTP 기술 사양에 정의된 요청 응답은 프록시를 통해 연결해야 함을 나타냅니다.

이는 프록시의 인밴드 구성에 대한 보안 문제로 인해 감소하고 있습니다.

306 미사용

이 응답 코드는 더 이상 사용되지 않으며 향후 사용을 위해 현재 예약되어 있습니다.

이것은 HTTP 1.1 기술 사양 이전 버전에서 사용되었습니다.

307 임시 리디렉션

클라이언트가 요청한 리소스가 다른 URI에 있고 이전 요청과 동일한 방법을 사용하여 요청해야 하는 경우 서버는 이 응답을 클라이언트에 직접 보냅니다.

이는 사용자 에이전트가 사용된 HTTP 메서드를 변경해서는 안 된다는 점을 제외하면 302 Found HTTP 응답 코드와 동일한 의미를 갖습니다.

첫 번째 요청이 POST를 사용하는 경우 두 번째 요청도 POST를 사용해야 합니다.

308 영구 리디렉션

이는 리소스가 이제 HTTP 응답 헤더의 Location:에 지정된 다른 URI에 영구적으로 위치함을 의미합니다.

이는 사용자 에이전트가 HTTP 메서드를 변경해서는 안 된다는 점을 제외하면 301 Moved Permanently HTTP 응답 코드와 동일한 의미입니다.

첫 번째 요청이 POST를 사용하는 경우 두 번째 요청도 POST를 사용해야 합니다.

4XX: 클라이언트 오류 응답

400 잘못된 요청

이 응답은 잘못된 구문으로 인해 서버가 요청을 이해할 수 없음을 의미합니다.

401 승인되지 않음

HTTP 표준은 “인증되지 않음”을 분명히 하지만 이 응답은 의미상 “인증되지 않음”을 의미합니다.

클라이언트는 요청된 응답을 얻기 위해 자신을 인증해야 합니다.

402 결제 필요

이 응답 코드는 향후 사용을 위해 예약되어 있습니다.

원래 디지털 지불 시스템에서 사용하도록 의도되었지만 현재는 사용되지 않습니다.

403 금지

클라이언트는 콘텐츠에 대한 액세스 권한이 없습니다.

예를 들어 수락되지 않으면 서버는 적절한 거부 응답을 보냅니다.

401과 달리 서버는 클라이언트가 누구인지 알고 있습니다.

404 찾을 수 없음

서버가 요청한 리소스를 찾을 수 없습니다.

브라우저의 경우 이는 알 수 없는 URL을 의미합니다.

이는 API의 엔드포인트가 적절하지만 리소스 자체가 존재하지 않음을 의미할 수 있습니다.

서버는 인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 403 대신 이 응답을 보낼 수 있습니다.

이 응답 코드는 인터넷에서 반복적으로 나타나기 때문에 아마도 가장 잘 알려져 있을 것입니다.

405 메서드가 허용되지 않음

요청된 메서드가 서버에 알려져 있지만 제거되어 사용할 수 없습니다.

예를 들어 API에서 리소스 삭제를 허용하지 않을 수 있습니다.

필수 GET 및 HEAD 메서드는 제거할 수 없으며 이 오류 코드를 반환할 수 없습니다.

406 허용되지 않음

이 대답은 서버 제어 콘텐츠 협상사용자 에이전트에서 지정한 대로 콘텐츠를 찾을 수 없을 때 웹 서버에서 보냅니다.

407 프록시 인증 필요

이것은 401과 같지만 프록시를 통한 인증이 필요합니다.

408 요청 시간 초과

이 응답은 오래 전에 요청된 연결에서 일부 서버에서 전송되며 때로는 클라이언트의 이전 요청이 없는 경우에도 전송됩니다.

이는 서버가 사용하지 않는 연결을 닫으려는 것을 의미합니다.

이 응답은 HTTP 사전 연결 메커니즘을 사용하여 웹 브라우징 속도를 높이는 Chrome, Firefox 27+ 또는 IE 9와 같은 특정 브라우저에서 종종 나타납니다.

또한 일부 서버는 이 메시지를 보내지 않고 연결을 끊습니다.

409 충돌

이 응답은 요청이 현재 서버 상태와 충돌할 때 전송됩니다.

410 웨이

이 응답은 요청한 콘텐츠가 서버에서 영구적으로 삭제되어 전달할 주소가 없을 때 전송됩니다.

클라이언트가 캐시와 리소스에 대한 링크를 지울 것으로 예상합니다.

HTTP 기술 사양에서는 이 상태 코드가 “간헐적인 광고 서비스”에 사용될 것으로 예상합니다.

API는 이 상태 코드가 있는 알려진 리소스를 강제로 삭제해서는 안 됩니다(MUST NOT).

411 길이 필요

서버에서 요구하는 Content-Length 헤더 필드가 정의되지 않았기 때문에 서버에서 요청을 거부합니다.

412 전제 조건 실패

클라이언트 헤더의 요구 사항이 서버의 요구 사항과 일치하지 않습니다.

413 너무 큰 페이로드

요청 엔터티가 서버 정의 제한보다 큽니다.

서버는 연결을 닫거나 Retry-After 헤더 필드와 함께 다시 보냅니다.

414 URI가 너무 깁니다.

클라이언트가 요청한 URI가 서버가 처리하지 않기로 결정한 것보다 깁니다.

415 지원되지 않는 미디어 유형

요청한 미디어 형식이 서버에서 지원되지 않습니다.

서버는 요청을 거부합니다.

416 요청된 범위가 충족되지 않음

“Range” 헤더 필드에서 요청된 지정된 범위를 충족할 수 없습니다.

범위가 대상 URI 데이터의 크기를 초과할 수 있습니다.

417 예상 실패

이 응답 코드는 요청 헤더 필드에서 예상되는 기대가 합리적이지 않음을 서버에 알립니다.

418 나는 주전자입니다

웨이터는 찻주전자에 커피를 끓이는 것을 거부합니다.

421 잘못된 요청

서버로 향하는 요청은 응답을 생성할 수 없습니다.

이것은 서버가 요청 URI와 관련된 체계 및 권한을 구성하여 응답을 구성할 수 없을 때 전송됩니다.

422 처리할 수 없는 엔터티(WebDAV)

요청은 잘 처리되었지만 문법 오류로 인해 따를 수 없었습니다.

423 차단됨(WebDAV)

리소스에 대한 액세스가 차단되었습니다.

424 잘못된 종속성(WebDAV)

이전 요청이 실패했기 때문에 현재 요청이 실패했습니다.

426 업그레이드 필요

서버는 현재 프로토콜로 요청 처리를 거부했지만 클라이언트가 다른 프로토콜로 업그레이드하면 그렇게 할 수 있습니다.

서버는 업그레이드 헤더와 필요한 프로토콜을 지정하기 위해 426 응답을 보냅니다.

428 전제 조건 필요

오리진 서버는 조건부 요청이 필요합니다.

이는 클라이언트가 GET 리소스를 검색, 수정 및 서버로 다시 보내는 동안 제3자가 서버의 상태를 변경하여 발생하는 충돌인 “업데이트 누락”을 방지하기 위한 것입니다.

429 너무 많은 요청

사용자가 지정된 시간에 너무 많은 요청을 보냈습니다(“속도 제한”).

431 요청 헤더 필드가 너무 큼

요청된 헤더 필드가 너무 커서 서버에서 요청을 처리하지 않습니다.

크기를 줄인 후 요청을 다시 보내야 합니다.

451 법적인 이유로 사용할 수 없습니다.

요청하신 것은 불법 리소스입니다.

B. 정부에 의해 검열된 웹사이트.

5XX : 서버 오류 응답

500 내부 서버 오류

이것은 웹 사이트 서버에 문제가 있지만 서버가 정확한 문제를 지적할 수 없음을 의미합니다.

501 구현되지 않음

서버가 요청을 이행하는 데 필요한 기능을 지원하지 않음을 나타냅니다.

502 배드 게이트웨이

이는 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미합니다.

인터넷에 있는 서버가 다른 서버로부터 잘못된 응답을 받을 때 발생합니다.

503 서비스를 사용할 수 없음

서버가 요청을 처리할 준비가 되지 않았습니다.

일반적인 원인은 과부하된 서버 또는 유지 관리를 위한 다운타임입니다.

문제를 설명하는 사용자 친화적인 페이지를 이 응답과 함께 보내야 합니다.

이 응답은 일시적인 조건에 사용해야 하며 Retry-After: HTTP 헤더에는 가능한 경우 서비스가 복원되기 전에 예상되는 시간이 포함되어야 합니다.

또한 웹마스터는 이 응답과 함께 전송되는 캐싱 관련 헤더를 주의해야 합니다.

이러한 일시적인 조건부 응답은 캐시되지 않아야 하기 때문입니다.

504 게이트웨이 시간 초과

이는 서버가 웹 페이지를 로드하거나 브라우저에서 다른 요청을 이행하려고 할 때 액세스한 다른 서버로부터 적시에 응답을 받지 못했음을 의미합니다.

이 오류 응답은 서버가 게이트웨이 역할을 하고 적시에 응답을 받을 수 없을 때 제공됩니다.

이 오류는 일반적으로 인터넷에 있는 서버 간의 네트워크 오류이거나 실제 서버의 문제입니다.

컴퓨터, 장치 또는 인터넷 연결에 문제가 없을 수 있습니다.

505 HTTP 버전은 지원되지 않습니다.

클라이언트가 서버에서 지원하지 않는 HTTP 버전을 요청했습니다.

대부분의 웹 브라우저는 웹 서버가 HTTP 프로토콜 버전 1.x를 지원한다고 가정합니다.

사실 1.0 이하의 아주 오래된 버전은 요즘 거의 사용되지 않습니다.

주로 최신 버전의 프로토콜보다 덜 안전하고 덜 강력하기 때문입니다.

따라서 웹 브라우저에 이 오류가 표시되면 웹 서버 소프트웨어에서 지원하는 HTTP 버전을 확인해야 합니다.

506 변종도 협상

서버에 내부 구성 오류가 있는 경우 발생합니다.

문의 내용의 투명한 협상은 순환 참조로 이어집니다.

507 디스크 공간 부족

투명 서버에 내부 구성 문제가 있는 경우 선택된 가변 리소스가 발생합니다.

콘텐츠 협상에 참여하도록 구성되었기 때문에 협상 프로세스에서 적합한 엔드포인트가 아닙니다.

508 루프 감지(WebDAV)

요청을 처리하는 동안 서버에서 무한 루프가 발생하면 발생합니다.

510 향상되지 않음

서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요합니다.

511 네트워크 인증 필요

511 상태 코드는 클라이언트가 네트워크에 액세스하려면 자신을 인증해야 함을 나타냅니다.