091
HTTP 상태 코드(Status Code) 본문
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: 주로 로드밸런서나 리버스 프록시가 뒷단의 실제 애플리케이션 서버와 연결하지 못했거나, 트래픽 과부하로 서버가 뻗은 물리적 장애 상황을 의미
'Computer Science' 카테고리의 다른 글
| CQRS & EDA (0) | 2026.03.28 |
|---|---|
| 실시간 통신: Polling, Long Polling, SSE, WebSocket (0) | 2026.03.22 |
| DLL(동적 라이브러리)와 SLL(정적 라이브러리) (0) | 2025.09.16 |