HTTP 상태 코드는 서버가 클라이언트 요청을 처리한 결과를 나타내며, 숫자와 짧은 설명(Reason Phrase)으로 구성됩니다. 상태 코드는 첫 번째 자릿수를 기준으로 5개의 클래스(Class)로 분류됩니다.
1xx: Informational (정보)
클라이언트가 요청을 계속 진행할 수 있음을 알리는 응답.
코드 | 설명 (Reason Phrase) | 의미 |
100 | Continue | 요청이 부분적으로 완료되었으며, 계속 진행 가능 |
101 | Switching Protocols | 프로토콜 전환 승인 |
102 | Processing (WebDAV) | 요청을 수신했으며 처리 중 |
103 | Early Hints | 응답의 일부 정보를 먼저 제공 |
2xx: Success (성공)
요청이 성공적으로 처리되었음을 알리는 응답.
코드 | 설명 (Reason Phrase) | 의미 |
200 | OK | 요청이 성공적으로 처리됨 |
201 | Created | 요청으로 인해 리소스가 성공적으로 생성됨 |
202 | Accepted | 요청이 접수되었으나 처리되지 않음 |
203 | Non-Authoritative Information | 원 서버가 아닌 다른 소스에서 가져온 정보 |
204 | No Content | 요청이 성공적으로 처리되었으나 응답 본문 없음 |
205 | Reset Content | 클라이언트가 보기를 초기화하도록 지시 |
206 | Partial Content | 요청된 리소스의 일부를 제공 |
207 | Multi-Status (WebDAV) | 여러 상태를 포함한 다중 응답 |
208 | Already Reported (WebDAV) | 이미 처리된 리소스 |
226 | IM Used | 서버가 GET 요청에 대해 인스턴스 조작을 수행함 |
3xx: Redirection (리다이렉션)
클라이언트가 요청을 완료하기 위해 추가 조치를 취해야 함.
코드 | 설명 (Reason Phrase) | 의미 |
300 | Multiple Choices | 여러 리소스 중 선택 필요 |
301 | Moved Permanently | 리소스가 영구적으로 다른 URL로 이동됨 |
302 | Found | 리소스가 일시적으로 다른 URL에 존재 |
303 | See Other | 다른 URI를 참조하도록 리다이렉션 |
304 | Not Modified | 캐시된 리소스가 변경되지 않음 |
305 | Use Proxy | 요청에 프록시 사용 필요 |
306 | (Unused) | 더 이상 사용되지 않음 (예약 코드) |
307 | Temporary Redirect | 일시적으로 다른 URL로 리다이렉션 |
308 | Permanent Redirect | 리소스가 영구적으로 다른 URL로 이동됨 |
4xx: Client Error (클라이언트 오류)
클라이언트 요청에 오류가 있어 처리할 수 없음.
코드 | 설명 (Reason Phrase) | 의미 |
400 | Bad Request | 잘못된 요청 |
401 | Unauthorized | 인증 필요 |
402 | Payment Required | 결제 필요 (미사용) |
403 | Forbidden | 요청이 허용되지 않음 |
404 | Not Found | 요청한 리소스를 찾을 수 없음 |
405 | Method Not Allowed | 허용되지 않은 HTTP 메소드 |
406 | Not Acceptable | 요청의 콘텐츠 특성이 만족되지 않음 |
407 | Proxy Authentication Required | 프록시 인증 필요 |
408 | Request Timeout | 요청 시간이 초과됨 |
409 | Conflict | 요청 충돌 발생 |
410 | Gone | 리소스가 더 이상 사용되지 않음 |
411 | Length Required | Content-Length 헤더가 필요 |
412 | Precondition Failed | 사전 조건이 실패 |
413 | Payload Too Large | 요청 본문이 너무 큼 |
414 | URI Too Long | 요청 URI가 너무 김 |
415 | Unsupported Media Type | 지원되지 않는 미디어 타입 |
416 | Range Not Satisfiable | 요청 범위가 처리 불가능 |
417 | Expectation Failed | 요청 헤더의 Expect가 실패 |
418 | I'm a teapot | "I'm a teapot" (RFC 2324 - 장난 코드) |
421 | Misdirected Request | 서버가 이 요청을 처리할 수 없음 |
422 | Unprocessable Entity (WebDAV) | 요청이 이해되었으나 처리할 수 없음 |
423 | Locked (WebDAV) | 리소스가 잠겨 있음 |
424 | Failed Dependency (WebDAV) | 이전 요청이 실패했기 때문에 처리 실패 |
425 | Too Early | 요청 처리가 너무 이른 시점 |
426 | Upgrade Required | 클라이언트가 다른 프로토콜로 업그레이드해야 함 |
428 | Precondition Required | 사전 조건 필요 |
429 | Too Many Requests | 클라이언트가 너무 많은 요청을 보냄 |
431 | Request Header Fields Too Large | 요청 헤더 필드가 너무 큼 |
451 | Unavailable For Legal Reasons | 법적 이유로 요청한 리소스를 제공할 수 없음 |
5xx: Server Error (서버 오류)
서버가 요청을 처리하지 못했음을 나타냄.
코드 | 설명 (Reason Phrase) | 의미 |
500 | Internal Server Error | 서버 내부에서 오류 발생 |
501 | Not Implemented | 요청 메소드를 서버에서 지원하지 않음 |
502 | Bad Gateway | 게이트웨이/프록시 서버가 잘못된 응답을 수신 |
503 | Service Unavailable | 서버가 요청을 처리할 준비가 되지 않음 |
504 | Gateway Timeout | 게이트웨이/프록시 서버에서 응답 시간 초과 |
505 | HTTP Version Not Supported | 지원되지 않는 HTTP 버전 |
506 | Variant Also Negotiates | 투명한 콘텐츠 협상이 순환 참조를 발생 |
507 | Insufficient Storage (WebDAV) | 서버 저장소가 부족 |
508 | Loop Detected (WebDAV) | 서버에서 무한 루프가 감지됨 |
510 | Not Extended | 확장이 필요함 |
511 | Network Authentication Required | 네트워크 인증 필요 |
💡 자주 접하는 상태코드
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
500 Internal Server Error
'네트워크' 카테고리의 다른 글
[네트워크] REST API란 무엇인가? (0) | 2025.01.11 |
---|---|
[네트워크] HTTPS : 웹 통신 보안 프로토콜 (0) | 2025.01.04 |
[네트워크] HTTP 요청과 응답 (1) | 2025.01.04 |
[네트워크] HTTP 메시지란? (2) | 2025.01.03 |
[네트워크] 통신 프로토콜이 뭘까요? (1) | 2025.01.03 |