091

HTTP 상태 코드(Status Code) 본문

Computer Science

HTTP 상태 코드(Status Code)

공구일 2026. 3. 22. 17:17
728x90

1. HTTP 상태 코드

- HTTP 상태코드는 클라이언트가 서버로 보낸 요청이 성공했는지, 실패했다면 누구의 책임인지를 3자리 숫자로 규격화한 국제 통신 표준입니다. 백의 자리를 숫자로 5개의 클래스로 분류됩니다.

(1) 2xx (성공: Successful) : 클라이언트의 요청을 서버가 성공적으로 수신, 이해, 처리했음을 의미합니다.

• 200 OK: 가장 범용적인 성공 응답으로, GET, PUT/PATCH 요청의 성공 시 바디 데이터와 함께 반환

• 201 Created: 클라이언트의 POST 요청에 의해 서버 DB에 새로운 자원이 성공적으로 생성되었음을 의미

• 204 No Content: 서버가 요청을 성공적으로 처리했으나, 클라이언트에게 돌려줄 본문 데이터가 없을 의미, DELETE 요청 시 사용


(2) 3xx(리다이렉션: Redirection): 클라이언트가 요청을 완료하기 위해 추가적인 동작(URL 이동)을 취해야 함을 의미합니다.

• 301 Moved Permanently: 요청한 자원의 URI가 영구적으로 변견되었음을 알리며, SEO 시 구버전 URL을 신버전 URL로 안내할 때 필수적

• 304 Not Modified: 브라우저가 요청한 자원이 이전 요청 이후로 수정되지 않았음을 서버가 알리며, 클라이언트는 서버에서 데이터를 다시 다운 받지 않고, 로컬에 저장된 캐시를 재사용하여 네트워크 비용을 절약

 

(3)4xx(클라이언트 에러: Client Error): 클라이언트가 잘못된 문법을 요청했거나, 요청 권한이 없어 서버가 처리할 수 없는 등의 프론트엔드에서 보낸 패킷에 문제가 있음을 백엔드가 지적하는 코드입니다.

• 400 Bad Request: API 파라미터 누락, 타입 불입치 등 클라이언트의 페이로드 유효성 검증이 실패했을 때 반환

• 401 Unauthorized: 해당 자원에 접근하기 위한 인증 자격 증명이 누락되었거나 유효하지 않음(토큰 만료)을 의미

• 403 Forbidden: 인증은 통과했으나, 해당 자원을 조작할 인가 권한이 없음을 의미(ex. 일반 유저가 관리자 전용 API 호출)
• 404 Not Found: 클라이언트가 요청한 URI(자원)을 서버에서 찾을 수 없음을 의미

• 409 Conflict: 클라이언트의 요청이 서버의 현재 상태와 충돌함을 의미(ex. 중복된 이메일로 회원가입을 POST 요청한 경우)

 

(4) 5xx(서버 에러: Server Error): 클라이언트의 요청은 유효했으나, 서버 내부의 로직 에러나 데이터베이스 연결 실패 등 처리에 실패한 상태인, 백엔드 시스템 장애를 의미합니다.

• 500 Internal Server Error: 백엔드 서버에서 예기치 못한 코드 에러(NullPointerException)가 발생하여 시스템이 중단된 상태

• 502 Bad Gateway / 503 Service Unavailable: 주로 로드밸런서나 리버스 프록시가 뒷단의 실제 애플리케이션 서버와 연결하지 못했거나, 트래픽 과부하로 서버가 뻗은 물리적 장애 상황을 의미

728x90