HTTP 상태 코드란?
HTTP 상태 코드는 클라이언트의 요청에 대한 서버의 응답 상태를 나타내는 숫자 코드이다.
총 5가지 범주(1xx~5xx)로 나뉘며, 각 코드의 앞자리 숫자가 의미하는 범주는 다음과 같다.
상태 코드 분류
| 범위 | 이름 | 설명 |
| 1xx | 정보 응답 | 요청을 받았으며 처리를 계속함 |
| 2xx | 성공 응답 | 요청이 정상적으로 처리됨 |
| 3xx | 리다이렉션 | 추가 조치가 필요함 (다른 위치로 이동 등) |
| 4xx | 클라이언트 오류 | 클라이언트의 잘못된 요청 |
| 5xx | 서버 오류 | 서버 내부 문제로 요청 실패 |
✅ 대표 상태 코드 상세 설명
🔸 1xx - 정보
- 100 Continue
요청의 일부가 전송되었으며 나머지를 계속 보내도 됨.
🔸 2xx - 성공
- 200 OK
가장 일반적인 성공 응답. GET, POST, PUT 등 다양한 요청에 사용된다. - 201 Created
리소스가 성공적으로 생성됨. 주로 POST 요청 시 사용. - 204 No Content
요청은 성공했지만 응답 본문은 없음. DELETE 요청 후 자주 사용됨.
→ 💡 "성공 응답"이라고 할 때, 가장 대표적인 코드는 200 OK이다.
🔸 3xx - 리다이렉션
- 301 Moved Permanently
요청한 리소스가 영구적으로 이동함. - 302 Found
일시적으로 다른 위치에서 응답함. - 304 Not Modified
캐시된 리소스가 그대로 사용 가능함.
🔸 4xx - 클라이언트 오류
- 400 Bad Request
잘못된 문법으로 인해 서버가 요청을 이해할 수 없음. - 401 Unauthorized
인증이 필요함. (예: 로그인하지 않은 상태로 접근 시) - 403 Forbidden
서버가 요청을 이해했지만 거부함. 권한 부족. - 404 Not Found
요청한 리소스를 찾을 수 없음. (가장 자주 마주치는 오류 중 하나)
🔸 5xx - 서버 오류
- 500 Internal Server Error
서버 내부에서 처리 중 알 수 없는 에러 발생. - 502 Bad Gateway
게이트웨이 또는 프록시 서버가 잘못된 응답을 받음. - 503 Service Unavailable
서버가 일시적으로 요청을 처리할 수 없음. (예: 서버 점검 중)
💡 자주 묻는 질문 (FAQ)
Q. 200 OK는 언제 사용하나요?
→ 요청이 성공적으로 처리된 경우 대부분의 HTTP 메서드에서 사용된다.
예:
- GET 요청에 대한 정상 응답
- PUT 요청으로 데이터 업데이트 완료 시
- POST 요청이지만, 새로 생성된 리소스 정보가 응답에 포함되지 않을 때
Q. POST 요청 시 꼭 201을 써야 하나요?
→ 반드시 그런 것은 아니다.
201은 리소스가 생성된 경우에 사용하는 것이 명확하지만, 일부 API에서는 200으로 응답하기도 한다.
RESTful API 설계 지침에서는 보통 201 사용을 권장한다.
'개발자 면접 노트' 카테고리의 다른 글
| RDBMS에서 정규화란? (0) | 2025.06.26 |
|---|---|
| RESTful API 설계의 핵심 원칙 (0) | 2025.06.26 |
| MVC 패턴 (0) | 2025.06.25 |
| Kotlin과 같은 등급은 Java인가 Spring인가? (3) | 2025.06.25 |
| Spring - 의존성 주입(DI)의 종류 (0) | 2025.06.25 |