HTTP 상태 코드는 웹에서 서버가 클라이언트의 요청(Request)에 대해 어떤 응답(Response)을 했는지 알려주는 숫자 코드입니다. 총 5가지 범주로 나뉘며, 각 범주는 특정한 의미를 갖고 있습니다. 아래는 이를 이해하기 쉽게 정리한 내용입니다.
✅ 1. 1xx (Informational) - 정보 응답
요청을 받았고, 처리를 계속 진행 중이라는 의미.
상태코드 | 이름 | 의미 |
---|---|---|
100 | Continue | 클라이언트가 요청의 일부를 보내고 있으며 나머지를 계속 보내도 좋다는 의미. |
101 | Switching Protocols | 서버가 프로토콜 변경 요청을 수락함 (ex. HTTP → WebSocket). |
102 | Processing (WebDAV) | 서버가 요청을 처리 중이지만 아직 응답할 준비가 되지 않음. |
✅ 2. 2xx (Success) - 성공 응답
클라이언트의 요청이 정상적으로 처리됨.
상태코드 | 이름 | 의미 |
---|---|---|
200 | OK | 요청이 성공적으로 처리됨 (가장 일반적인 성공 응답). |
201 | Created | 요청이 성공했고, 새로운 리소스가 생성됨 (ex. 회원가입). |
202 | Accepted | 요청이 접수되었으나 처리는 아직 완료되지 않음 (비동기 작업). |
204 | No Content | 요청은 성공했지만, 응답 본문(body)은 없음 (ex. 삭제 요청 후). |
✅ 3. 3xx (Redirection) - 리다이렉션
클라이언트는 요청을 완료하기 위해 다른 위치로 이동해야 함.
상태코드 | 이름 | 의미 |
---|---|---|
301 | Moved Permanently | 리소스가 영구적으로 다른 URL로 이동됨. |
302 | Found | 리소스가 임시로 다른 위치에 있음. |
303 | See Other | 요청에 대한 응답은 다른 URL에서 GET 방식으로 받아야 함. |
304 | Not Modified | 클라이언트가 캐시한 리소스와 동일하므로 다시 전송할 필요 없음. |
✅ 4. 4xx (Client Error) - 클라이언트 오류
클라이언트의 요청에 문제가 있음.
상태코드 | 이름 | 의미 |
---|---|---|
400 | Bad Request | 잘못된 요청 (문법 오류, 누락된 필드 등). |
401 | Unauthorized | 인증이 필요하거나 인증 실패 (ex. 로그인 필요). |
403 | Forbidden | 권한 없음 (인증은 됐지만 접근 권한이 없음). |
404 | Not Found | 요청한 리소스를 찾을 수 없음. |
405 | Method Not Allowed | 해당 리소스에 대해 지원되지 않는 HTTP 메서드 사용 (ex. GET만 가능한데 POST 요청). |
408 | Request Timeout | 요청 시간이 초과됨. |
409 | Conflict | 요청 충돌 (ex. 중복된 데이터). |
429 | Too Many Requests | 요청이 너무 많아서 서버가 제한함 (rate limit 초과). |
✅ 5. 5xx (Server Error) - 서버 오류
서버 내부에서 문제가 발생해 요청을 처리하지 못함.
상태코드 | 이름 | 의미 |
---|---|---|
500 | Internal Server Error | 서버 내부 오류 (구체적 원인 불명). |
501 | Not Implemented | 서버가 해당 기능을 지원하지 않음. |
502 | Bad Gateway | 게이트웨이/프록시 서버가 잘못된 응답을 받음. |
503 | Service Unavailable | 서버가 일시적으로 과부하 또는 유지보수 중. |
504 | Gateway Timeout | 게이트웨이/프록시 서버가 응답을 기다리다가 시간 초과. |
💡 이해를 돕는 예시
시나리오 | 예상되는 상태코드 |
---|---|
로그인 성공 | 200 OK |
회원가입 성공 | 201 Created |
로그인 안 하고 회원정보 요청 | 401 Unauthorized |
관리자만 접근 가능한 페이지에 일반 유저 접근 | 403 Forbidden |
존재하지 않는 페이지 요청 | 404 Not Found |
서버에서 코드 에러 발생 | 500 Internal Server Error |
웹 서버가 너무 많은 요청을 받아 일시적으로 다운됨 | 503 Service Unavailable |
🔍 꿀팁 정리
- 200번대는 다 성공: 성공했다는 의미. 특히 200은 “정상 완료”.
- 300번대는 이동해라: URL을 따라가야 할 상황.
- 400번대는 네 잘못: 요청 자체에 문제가 있음.
- 500번대는 내 잘못(서버 문제): 서버가 요청을 처리하지 못함.
'Web' 카테고리의 다른 글
[Javascript] AJAX (Asynchronous JavaScript and XML) 완전 정리 (0) | 2025.05.08 |
---|---|
[Web] CORS(Cross-Origin Resource Sharing) (0) | 2025.05.08 |
[Web] URL Encoding (0) | 2025.04.23 |
[Web] Query String (0) | 2025.04.23 |
[Web] API와 EndPoint (3) | 2022.10.20 |
댓글