기술 참고서

HTTP 응답 상태 코드

HTTP 상태 코드는 서버 응답의 3자리 신호입니다. 첫 번째 자리는 광범위한 결과를 식별하고, 나머지 자리는 특정 조건을 식별합니다. 이 가이드는 실용적인 맥락과 함께 등록된 표준 코드를 설명하며, 로그에 나타날 수 있는 주목할 만한 공급자별 값도 함께 다룹니다.

How to read this catalogue: A status is not a complete diagnosis by itself. Check the request method, response headers, body, redirect target, and the server or proxy that generated it. Unrecognized values generally retain the meaning of their first-digit class, but their exact behavior may be implementation-specific.

브라우저 호환성 및 응답 처리

HTTP 상태 코드는 각 공급업체가 별도의 웹 API로 구현하는 브라우저 기능이 아니라 HTTP 프로토콜의 일부입니다. 현재 브라우저는 표준 응답 클래스를 처리할 수 있으며, 표시되는 오류 페이지와 재시도 동작은 브라우저에 따라 다릅니다. 최신 임시 응답 및 특수 확장에 대한 지원은 버전 및 네트워크 경로에 따라 다를 수 있습니다.

응답 패밀리Chrome / EdgeFirefoxSafariOperaAndroid / iOS WebView호환성 참고 사항
1xx 정보성프로토콜 임시 응답으로 지원됨프로토콜 임시 응답으로 지원됨프로토콜 임시 응답으로 지원됨프로토콜 임시 응답으로 지원됨기본 네트워크 스택에서 지원됨100/101은 확립되어 있으며, 102는 틈새/지원 중단되었습니다. 103 Early Hints 채택 및 관찰 가능한 프리로드 동작은 브라우저 버전, 서버, 중개자에 따라 다릅니다.
2xx 성공지원됨지원됨지원됨지원됨지원됨표준 성공 시맨틱스가 공유됩니다. 본문 규칙은 여전히 중요합니다. 예를 들어 204 및 205에는 응답 본문이 없습니다.
3xx 리디렉션지원됨지원됨지원됨지원됨지원됨Location, 메서드, 캐시 및 보안 정책이 탐색에 영향을 미칩니다. 301/302는 POST를 GET으로 변경할 수 있으며, 307/308은 메서드를 유지합니다.
4xx 클라이언트/요청 오류지원됨지원됨지원됨지원됨지원됨브라우저가 응답을 수신합니다. 서버 본문을 표시할지 브라우저에서 생성한 오류 뷰를 표시할지는 상태 및 제품에 따라 다릅니다.
5xx 서버 오류지원됨지원됨지원됨지원됨지원됨클라이언트는 응답 클래스를 처리할 수 있지만, 프록시가 생성한 페이지, 재시도 동작 및 진단 UI는 브라우저 간에 동일하지 않습니다.
알려진 클래스의 알 수 없는 코드클래스 수준 처리클래스 수준 처리클래스 수준 처리클래스 수준 처리클래스 수준 처리HTTP 클라이언트는 첫 번째 자리에서 일반 클래스를 유추할 수 있습니다. 사용자 지정 코드가 표준 시맨틱스나 동일한 UI를 가질 것이라고 신뢰하지 마세요.

여기서 호환성은 프로토콜 수준의 처리를 설명하는 것이며, 모든 브라우저가 동일한 오류 페이지를 표시한다는 보장이 아닙니다. 구형 클라이언트, 포함된 WebView, 프록시 및 캡티브 포털은 추가적인 동작을 부과할 수 있습니다.

1xx — 정보성 응답

100

Continue

서버가 요청 헤더를 수락했으며 남은 요청 본문을 기다리고 있습니다. 요청이 거부될 때 클라이언트가 큰 본문 업로드를 피할 수 있도록 Expect: 100-continue와 함께 흔히 사용됩니다.

운영 지침: Interim response; continue sending the body only when one is expected.

101

Switching Protocols

클라이언트가 업그레이드를 요청한 후 서버가 이 연결에 대한 프로토콜을 변경하는 데 동의합니다. 웹소켓(WebSocket) 핸드셰이크가 친숙한 예입니다.

운영 지침: Connection-level transition; verify the Upgrade and Connection headers.

102

Processing

WebDAV 서버가 긴 작업이 시작되었으나 아직 완료되지 않았음을 보고합니다. 레거시/지원 중단된 응답이며 최종 결과로 오인해서는 안 됩니다.

운영 지침: Interim WebDAV status; wait for the final response.

103

Early Hints

서버가 최종 응답을 준비하는 동안 예비 헤더(주로 Link 힌트)를 보냅니다. 클라이언트는 중요할 가능성이 있는 에셋을 미리 가져오기 시작할 수 있습니다.

운영 지침: Interim optimization; a final response must follow.

2xx — 성공 응답

200

OK

요청이 성공했습니다. 표현 방식은 메서드에 따라 다릅니다. GET은 리소스를 반환하고, HEAD는 본문 없이 메타데이터를 반환하며, 쓰기 작업은 결과 표현을 반환할 수 있습니다.

운영 지침: Use for a completed request with a response representation when appropriate.

201

Created

요청이 완료되어 하나 이상의 리소스가 생성되었습니다. 응답은 새 리소스를 식별해야 하며(일반적으로 Location 사용), 해당 표현을 반환할 수 있습니다.

운영 지침: Typical after POST or PUT; ensure the created resource can be located.

202

Accepted

서버가 처리를 위해 요청을 수락했으나 처리가 완료되지 않았으며 실패할 수도 있습니다. HTTP는 동일한 교환에 대해 나중에 두 번째 응답을 전달하지 않습니다.

운영 지침: Provide an operation/status URL or another way to learn the eventual outcome.

203

Non-Authoritative Information

변환 프록시나 중개자가 원본 응답과 다른 메타데이터나 콘텐츠를 반환했습니다. 이는 응답이 직접적인 권위 있는 표현이 아님을 나타냅니다.

운영 지침: Use only when an intermediary transformation is relevant.

204

No Content

요청이 성공했으며 보낼 응답 콘텐츠가 없습니다. 헤더에는 업데이트된 유효성 검사기와 같은 유용한 메타데이터가 여전히 포함될 수 있습니다.

운영 지침: Do not include a response body.

205

Reset Content

요청이 성공했으며 클라이언트는 이를 제출한 뷰나 폼을 재설정하도록 지시받습니다. 응답 콘텐츠는 전송되지 않습니다.

운영 지침: Useful for interactions that should clear/reset the current input state.

206

Partial Content

서버가 유효한 범위 요청을 충족했으며 요청된 바이트 범위만 반환합니다. Content-Range는 전달된 내용을 설명합니다.

운영 지침: Ensure range and Content-Range values match; common for resumable media/downloads.

207

Multi-Status

WebDAV 응답이 일반적으로 구조화된 XML 본문 내에서 여러 리소스 또는 하위 작업에 대한 개별 결과를 보고합니다.

운영 지침: Interpret each embedded resource result; the outer status alone is not the full outcome.

208

Already Reported

반복을 피하기 위해 WebDAV 멀티스테이터스 응답은 동일한 응답 내에서 앞서 나열된 멤버를 생략합니다.

운영 지침: WebDAV-specific; interpret together with the surrounding multistatus response.

226

IM Used

서버가 인스턴스 조작을 사용하여 GET을 충족했으며 협상된 델타 메커니즘에 따라 현재 리소스에서 파생된 표현을 반환합니다.

운영 지침: Specialized delta encoding; clients and servers must agree on the transformation.

3xx — 리디렉션 및 캐시 유효성 검사

300

Multiple Choices

타겟에 여러 표현 또는 대상이 있으며 응답이 선택 사항을 제공합니다. 클라이언트나 사용자가 선호하는 변형을 선택할 수 있습니다.

운영 지침: Include clear alternatives; do not assume every client will choose automatically.

301

Moved Permanently

리소스에 지속되는 새 URI가 있습니다. 클라이언트가 저장된 링크와 캐시를 업데이트할 수 있으므로 이동이 지속되도록 의도된 경우에만 사용하십시오.

운영 지침: For SEO migrations, redirect directly to the final equivalent URL and update internal links.

302

Found

리소스가 다른 URI에서 일시적으로 제공됩니다. 과거 동작으로 인해 일부 경우 메서드 변경이 허용되므로 POST가 POST로 유지되어야 할 때 가장 안전한 선택은 아닙니다.

운영 지침: Use for temporary moves when method rewriting is acceptable; consider 307 when it is not.

303

See Other

클라이언트는 원본 액션을 반복하는 대신 GET(또는 적절한 경우 HEAD)을 사용하여 Location이 지정하는 리소스를 가져와야 합니다. 폼 제출 후 흔히 사용됩니다.

운영 지침: Implements the Post/Redirect/Get pattern and avoids resubmitting the action.

304

Not Modified

조건부 GET 또는 HEAD는 캐시된 표현이 여전히 최신 상태임을 나타냅니다. 응답에 본문이 없으며 클라이언트가 저장된 복사본을 재사용할 수 있게 합니다.

운영 지침: Return only when a validator such as If-None-Match or If-Modified-Since matches.

305

Use Proxy

과거 응답에서는 클라이언트가 프록시를 통해 리소스에 접근할 것을 제안했습니다. 보안상의 이유로 지원이 중단되었으며 최신 서비스에서 사용해서는 안 됩니다.

운영 지침: Do not deploy; configure proxies out of band.

306

Unused

이 값은 최신 HTTP 사양에서 예약되어 있으며 사용되지 않습니다. 현재 웹 애플리케이션에 대한 표준적인 운영상의 의미가 없습니다.

운영 지침: Do not send it.

307

Temporary Redirect

리소스가 일시적으로 다른 URI에 있으며, 클라이언트는 리디렉션을 따를 때 원래의 메서드와 본문을 유지해야 합니다.

운영 지침: Use when temporary relocation must not turn POST into GET.

308

Permanent Redirect

리소스가 영구적으로 이동했으며, 클라이언트는 리디렉션을 따를 때 원래의 메서드와 본문을 유지해야 합니다.

운영 지침: Use for lasting moves where method preservation matters; update canonical/internal references.

4xx — 클라이언트/요청 오류

400

Bad Request

구문, 프레이밍 또는 제공된 데이터가 유효하지 않아 서버가 요청을 처리할 수 없습니다. 변경 없이 동일한 요청을 반복하는 것은 도움이 되지 않을 가능성이 높습니다.

운영 지침: Inspect URL encoding, JSON/body syntax, required fields, and request framing.

401

Unauthorized

요청에 타겟에 대한 유효한 인증 자격 증명이 부족합니다. 이름과 달리 이 응답은 인증이 필요하거나 실패했음을 의미합니다.

운영 지침: Send the expected credentials and include a WWW-Authenticate challenge.

402

Payment Required

향후 사용을 위해 예약되어 있으나 일부 제품에서는 결제 또는 할당량(quota) 워크플로에 사용합니다. 상호 호환되는 단일 결제 동작은 없습니다.

운영 지침: Treat vendor-specific meanings as such; document the API contract.

403

Forbidden

서버가 요청을 이해했으나 이행을 거부합니다. 제한이 정책 기반일 수 있으므로 유효한 자격 증명이 반드시 결과를 바꾸지는 않습니다.

운영 지침: Check permissions, access policy, IP/WAF rules, and resource-level authorization.

404

Not Found

서버가 요청된 URI에 대한 현재 표현을 찾을 수 없거나 존재함을 공개할 의도가 없습니다. 이 응답만으로는 부재가 일시적인지 영구적인지 알 수 없습니다.

운영 지침: Repair the URL, restore the resource, or use 410 when removal is known to be permanent.

405

Method Not Allowed

리소스가 존재하지만 이 요청에서 사용된 메서드를 지원하지 않습니다.

운영 지침: Return an Allow header listing methods the resource accepts.

406

Not Acceptable

서버가 클라이언트의 사전 예방적 Accept 선호도와 일치하는 표현을 생성할 수 없습니다.

운영 지침: Relax Accept constraints or configure a suitable representation/negotiation policy.

407

Proxy Authentication Required

중개 프록시가 요청을 전달하기 전에 자격 증명을 요구합니다.

운영 지침: Authenticate to the proxy using Proxy-Authenticate / Proxy-Authorization; this is distinct from origin authentication.

408

Request Timeout

서버가 대기할 준비가 된 시간 내에 완전한 요청을 수신하지 못했습니다. 클라이언트는 새 연결에서 재시도할 수 있습니다.

운영 지침: Check network stalls, upload size, and server/proxy timeout settings.

409

Conflict

요청이 버전 충돌 또는 중복 생성 시도 등 리소스의 현재 상태와 충돌합니다.

운영 지침: Explain the conflict and provide enough current state for the client to resolve it.

410

Gone

리소스는 의도적으로 그리고 아마도 영구적으로 사용할 수 없으며 알려진 대체재가 없습니다. 이는 일반적인 not-found 응답보다 더 강력합니다.

운영 지침: Use when removal is deliberate; remove obsolete internal links and references.

411

Length Required

서버가 Content-Length 헤더를 요구하지만 요청이 제공하지 않았습니다.

운영 지침: Send an accurate Content-Length or use a supported transfer framing.

412

Precondition Failed

If-Match 같은 요청 조건이 거짓으로 평가되어 서버가 요청된 액션을 수행하지 않았습니다.

운영 지침: Refresh the representation and retry with current validators/state.

413

Content Too Large

요청 본문이 서버가 처리할 수 있는 용량 또는 한도를 초과합니다. 서버가 연결을 끊거나 본문을 줄인 후 재시도를 허용할 수 있습니다.

운영 지침: Reduce payload size or adjust documented upload limits.

414

URI Too Long

요청 대상이 서버가 해석할 수 있는 것보다 깁니다(주로 과도하게 큰 쿼리 문자열 때문).

운영 지침: Use a shorter URI or move suitable data into a request body.

415

Unsupported Media Type

미디어 유형, 콘텐츠 인코딩 또는 검사된 형식이 지원되지 않기 때문에 서버가 요청 본문을 거부합니다.

운영 지침: Send a supported Content-Type/encoding and a body matching it.

416

Range Not Satisfiable

요청된 바이트 범위가 표현 길이를 초과하여 시작되는 등의 이유로 제공될 수 없습니다.

운영 지침: Re-check resource length and range units; servers may return Content-Range: bytes */length.

417

Expectation Failed

서버 또는 중개자가 Expect 헤더에 선언된 기대를 충족할 수 없습니다.

운영 지침: Retry without the unsupported expectation when safe and appropriate.

418

I'm a teapot

만우절 사양에서 유래된 유머러스한 상태입니다. 정상적인 애플리케이션 오류 계약은 아니지만 일부 서비스에서는 장난스럽게 사용합니다.

운영 지침: Do not depend on it for interoperable production behavior.

421

Misdirected Request

연결 라우팅이나 HTTP 권한이 일치하지 않아 요청이 타겟 URI에 대한 권한 있는 응답을 생성할 수 없는 서버에 도달했습니다.

운영 지침: Retry over a suitable connection and inspect Host/:authority, SNI, and proxy routing.

422

Unprocessable Content

콘텐츠 유형과 구문은 이해되지만 서버가 지침을 적용하거나 제출된 콘텐츠를 검증할 수 없습니다.

운영 지침: Return actionable field-level validation details; correcting the payload may allow success.

423

Locked

WebDAV 리소스가 잠겨 있으므로 잠금 조건이 해결될 때까지 요청된 메서드를 수행할 수 없습니다.

운영 지침: Check lock ownership, timeout, and WebDAV lock-token handling.

424

Failed Dependency

동일한 요청 시퀀스 내의 필수 선행 작업이 실패했기 때문에 WebDAV 작업이 실패했습니다.

운영 지침: Resolve the earlier failed action before retrying dependent operations.

425

Too Early

리플레이 위험을 줄이기 위해 서버는 조기 데이터(early data) 중에 재전송되었을 수 있는 요청의 처리를 거부합니다.

운영 지침: Retry after the connection is established without early data.

426

Upgrade Required

서버가 현재 프로토콜을 거부하며 클라이언트가 다른 프로토콜로 전환해야 함을 나타냅니다.

운영 지침: Include an Upgrade header that describes supported protocol choices.

428

Precondition Required

업데이트 유실을 방지하기 위해 서버가 조건부 요청을 요구하지만 클라이언트가 무조건부 요청을 보냈습니다.

운영 지침: Fetch current state and submit an appropriate condition such as If-Match.

429

Too Many Requests

서버에서 정의한 속도 제한에 따라 클라이언트가 주어진 기간 동안 너무 많은 요청을 보냈습니다.

운영 지침: Back off, honor Retry-After when present, and avoid synchronized retry bursts.

431

Request Header Fields Too Large

하나 이상의 헤더 필드 또는 결합된 헤더 세트가 너무 크기 때문에 서버가 요청을 처리하지 않습니다.

운영 지침: Reduce cookies/custom headers or adjust an intentional server limit.

451

Unavailable For Legal Reasons

법적 제한으로 인해 서버가 요청된 리소스를 제공할 수 없습니다.

운영 지침: Where appropriate, explain the restriction and its scope without exposing protected information.

5xx — 서버 및 중개자 오류

500

Internal Server Error

서버에서 예기치 않은 조건이 발생하여 요청을 완료할 수 없습니다. 더 정확한 서버 오류가 적용되지 않을 때 사용되는 일반적인 폴백입니다.

운영 지침: Correlate the request with server logs and avoid exposing stack traces to visitors.

501

Not Implemented

서버가 요청을 이행하는 데 필요한 기능(일반적으로 구현되지 않은 메서드나 기능)을 지원하지 않습니다.

운영 지침: Implement the capability or use a supported method; it is not intended for temporary overload.

502

Bad Gateway

게이트웨이 또는 프록시로 작동하는 서버가 업스트림 서버로부터 잘못된 응답을 받았습니다.

운영 지침: Inspect upstream health, protocol/TLS settings, DNS, and proxy logs.

503

Service Unavailable

유지보수나 과부하로 인해 서버가 일시적으로 요청을 처리할 수 없습니다.

운영 지침: If possible provide Retry-After, a helpful response, and cache controls suitable for a temporary failure.

504

Gateway Timeout

게이트웨이 또는 프록시가 업스트림 서비스로부터 적시에 응답을 받지 못했습니다.

운영 지침: Investigate upstream latency, network paths, and timeout budgets across the chain.

505

HTTP Version Not Supported

서버가 요청에 사용된 주요 HTTP 버전을 지원하지 않습니다.

운영 지침: Use a supported protocol version or update server/proxy configuration.

506

Variant Also Negotiates

서버 구성 오류로 인해 선택된 변형이 다시 협상되는 순환 콘텐츠 협상 배열이 생성되었습니다.

운영 지침: Fix the variant/negotiation configuration; this is an origin-side fault.

507

Insufficient Storage

WebDAV 서버가 작업을 완료하는 데 필요한 표현을 저장할 수 없습니다.

운영 지침: Free or provision storage and check quotas before retrying.

508

Loop Detected

서버가 요청을 처리하는 동안(일반적으로 WebDAV 바인딩 순회 중에) 무한 루프를 감지했습니다.

운영 지침: Break the cyclic resource relationship or processing rule.

510

Not Extended

요청에는 서버가 지원하지 않는 확장이 필요합니다.

운영 지침: Use a supported extension set or negotiate an alternative.

511

Network Authentication Required

클라이언트가 네트워크에 액세스하려면(일반적으로 캡티브 포털에서) 인증해야 합니다. 이는 원본 웹사이트 로그인이 아니라 네트워크 중개자를 위한 것입니다.

운영 지침: Complete network access authentication, then retry the original request.

주목할 만한 비표준 및 공급업체별 응답

이러한 값은 특정 제품, 서버 로그, CDN 또는 애플리케이션에서 볼 수 있습니다. 등록된 표준 의미와 상호 교환할 수 없습니다. 생성하는 서비스의 계약을 참조하십시오.

419

Authentication Timeout (non-standard)

일부 애플리케이션에서는 인증 세션이 만료될 때 이 라벨을 사용합니다. 보편적으로 할당된 HTTP 상태가 아니므로 클라이언트가 일관된 시맨틱스에 의존할 수 없습니다.

운영 지침: Refresh authentication according to the service contract.

420

Enhance Your Calm (non-standard)

스로틀링에 역사적으로 사용된 공급업체별 응답입니다. 그 의미는 구현에 따라 정의됩니다.

운영 지침: Follow documented rate-limit guidance.

444

Connection Closed (non-standard)

일부 서버는 필터링 조치로서 흔히 기존 응답을 보내지 않고 연결을 닫습니다.

운영 지침: Check provider logs; clients may report a network error rather than display this code.

449

Retry With (non-standard)

클라이언트에게 추가 정보와 함께 재시도를 요청하기 위해 일부 서비스에서 사용하는 Microsoft 확장 기능입니다.

운영 지침: Follow the specific API documentation.

499

Client Closed Request (non-standard)

업스트림 응답이 완료되기 전에 클라이언트가 연결을 끊을 때 리버스 프록시가 이를 기록할 수 있습니다. 이는 해당 클라이언트에 전달된 응답이라기보다는 주로 로그 분류입니다.

운영 지침: Investigate client cancellations and slow upstream requests.

509

Bandwidth Limit Exceeded (non-standard)

일부 호스팅 플랫폼에서는 할당량이나 대역폭 상한에 대해 이 코드를 사용합니다. 일반적인 상호 호환되는 HTTP 의미가 아닙니다.

운영 지침: Check the host’s quota and billing configuration.

520

Web Server Returned an Unknown Error (vendor-specific)

CDN 또는 프록시는 예상치 못하거나 빈 원본 응답을 받을 때 이를 사용할 수 있습니다.

운영 지침: Compare edge and origin logs; verify the origin emits a valid HTTP response.

521

Web Server Is Down (vendor-specific)

프록시가 원본과의 연결을 설정할 수 없거나 원본이 연결을 거부했습니다.

운영 지침: Check origin availability, firewall rules, and proxy allowlists.

522

Connection Timed Out (vendor-specific)

엣지 서비스가 원본에 연결했거나 연결을 시도했으나 시간 초과 내에 교환을 완료하지 못했습니다.

운영 지침: Review origin responsiveness and network latency.

523

Origin Is Unreachable (vendor-specific)

프록시가 구성된 원본 주소에 도달할 수 없습니다.

운영 지침: Check DNS resolution, routing, and origin IP configuration.

524

A Timeout Occurred (vendor-specific)

원본과의 연결은 성공했으나 원본이 적시에 HTTP 응답을 보내지 않았습니다.

운영 지침: Reduce origin processing time or adjust supported timeout settings.

525

SSL Handshake Failed (vendor-specific)

프록시가 원본과의 TLS 협상을 완료할 수 없습니다.

운영 지침: Validate certificates, protocol/cipher compatibility, and SNI.

526

Invalid SSL Certificate (vendor-specific)

유효성 검사 중에 중개자가 원본 인증서를 거부했습니다.

운영 지침: Install a valid, correctly named, trusted, unexpired certificate and full chain.

527

Railgun Error (vendor-specific)

레거시/공급업체별 프록시 상태가 원본 가속 연결의 실패를 보고합니다.

운영 지침: Inspect the provider-specific connector and origin path.

598

Network Read Timeout (non-standard)

일부 클라이언트나 프록시는 네트워크 읽기 시간 초과를 설명하기 위해 이 값을 사용합니다. 보편적인 HTTP 의미가 없습니다.

운영 지침: Inspect the client/proxy diagnostics.

599

Network Connect Timeout (non-standard)

네트워크 연결 시도가 시간 초과될 때 일부 프록시가 이 값을 사용합니다. 그 의미는 구현에 따라 다릅니다.

운영 지침: Check reachability and timeout settings.

리디렉션 및 SEO 감사에서의 상태 코드 사용

영구적인 URL 이동의 경우, 대상이 기존 URL을 대체하도록 의도된 경우에만 영구 리디렉션을 사용하고, 일시적인 변경의 경우 임시 응답을 선택하십시오. 체인을 짧게 유지하고 최종 동등한 원본을 가리키도록 하십시오. 각 Location 값이 올바르게 확인되는지, 최종 응답이 적절한지, 정규 태그(canonical tags) 및 내부 링크가 의도한 URL과 일치하는지 확인하십시오. 끝의 2xx는 페이지가 유용하거나, 색인 가능하거나, 기술적으로 건전하다는 것이 아니라 HTTP 성공 응답을 확인하는 것입니다.