본문 바로가기
Web

[HTTP] HTTP 상태 코드

by clolee 2025. 4. 14.

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

댓글