HTTP 상태 코드 사전 및 REST API 가이드
HOTHTTP 상태 코드(100~599) 규격 검색, 원인 분석 및 REST API 상황별 권장 응답 코드 가이드
Responsive 728x90 / 320x100 Ad Slot
(CLS Prevention Active · Zero Shift)OK2xx
요청이 성공적으로 처리되었음
RFC 표준 상세 정의 및 동작 방식
가장 보편적인 성공 코드로 GET 조회 결과나 일반적인 성공 응답 본문이 반환됩니다.
REST API 모범 실무 적용 사례 (Best Practice)
Native In-Feed / High Viewability Ad Slot
(CLS Prevention Active · Zero Shift)HTTP 상태 코드(HTTP Status Codes)와 RFC 9110 시맨틱스 표준
HTTP 상태 코드(HTTP Status Code)는 인터넷 웹 통신 프로토콜인 HTTP/1.1 및 HTTP/2, HTTP/3에서 클라이언트(웹 브라우저, 모바일 앱, 백엔드 서비스)가 전송한 요청에 대해 서버가 처리한 결과를 3자리 10진수 숫자로 응답하는 국제 표준 통신 규약(IETF RFC 9110)입니다. 첫 번째 자릿수(1~5)에 따라 전체 응답의 성격이 정보성(1xx), 성공(2xx), 리다이렉션(3xx), 클라이언트 오류(4xx), 서버 오류(5xx)의 5개 대분류로 나뉘며, 뒤따르는 2자리는 세부적인 원인과 맥락을 규정합니다.
현대 분산 클라우드 아키텍처와 RESTful API 생태계에서 올바른 HTTP 상태 코드의 선택은 서비스의 안정성과 디버깅 효율을 결정짓는 핵심 엔지니어링 척도입니다. 실무에서 가장 흔히 발생하는 안티패턴 중 하나는 서버 내부에서 예외나 오류가 발생했음에도 무조건 `200 OK`를 반환하고 본문(Body) JSON에 `{"success": false, "error": "..."}`를 담는 방식입니다. 이러한 설계는 CDN 캐시 무효화 실패, 프론트엔드 에러 바운더리 오작동, API 게이트웨이 및 모니터링 시스템의 장애 감지 누락 등 연쇄적인 결함을 초래합니다.
오르보킷 HTTP 상태 코드 조회기(HTTP Status Code Lookup)는 RFC 공식 표준에 등록된 60개 이상의 모든 상태 코드를 제공하며, 각 코드의 시맨틱 정의뿐만 아니라 실무 REST API에서의 올바른 응답 시나리오, 캐싱 가능 여부(Cacheability), 관련 필수 헤더(`Location`, `Retry-After`, `WWW-Authenticate`), 그리고 백엔드/프론트엔드 트러블슈팅 가이드를 즉시 제공합니다.
HTTP 상태 코드 5대 분류 체계 및 시맨틱 결정 공식
클라이언트 요청의 유효성, 자원의 상태 전이, 서버의 처리 능력에 따른 체계적인 코드 결정 원리입니다.
인증(Authentication) ➔ 인가(Authorization) ➔ 리소스 유효성 ➔ 서버 내부 상태 ➔ 비즈니스 결과의 순서로 코드를 도출합니다.
👉 무조건 200을 내보내지 않고 정확한 201 Created와 함께 생성된 자원 식별자를 제공합니다.
- 1xx (조건부 정보, Informational): 요청을 수신하여 처리가 진행 중임을 알리는 임시 응답 (100 Continue, 101 Switching Protocols)
- 2xx (성공, Successful): 클라이언트의 요청이 서버에 의해 성공적으로 수신, 이해, 수락됨 (200 OK, 201 Created, 204 No Content)
- 3xx (리다이렉션, Redirection): 요청 완료를 위해 클라이언트가 추가적인 URL 이동이나 캐시 조치를 취해야 함 (301 Moved Permanently, 304 Not Modified)
- 4xx (클라이언트 에러, Client Error): 잘못된 문법, 인증 누락, 존재하지 않는 URL 등 클라이언트 측 원인으로 요청 실패 (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found)
- 5xx (서버 에러, Server Error): 유효한 요청임에도 불구하고 서버 내부 장애나 게이트웨이 타임아웃으로 처리 실패 (500 Internal Server Error, 502 Bad Gateway, 504 Gateway Timeout)
실무 핵심 HTTP 상태 코드 비교 및 규격 요약표
| 상태 코드 | 공식 명칭 | 카테고리 | 캐싱 가능 여부 | 필수/권장 응답 헤더 | 실무 적용 시점 및 핵심 가이드 |
|---|---|---|---|---|---|
| 200 | OK | 2xx 성공 | 기본 캐싱 가능 | Content-Type | 일반적인 GET 조회 및 멱등한 수정 연산 성공 시 |
| 201 | Created | 2xx 성공 | 캐싱 가능 | Location | POST를 통해 신규 엔티티/자원이 서버에 새로 생성되었을 때 |
| 204 | No Content | 2xx 성공 | 기본 불가능 | 없음 (Body 금지) | DELETE 요청이나 응답 본문을 돌려줄 필요가 없는 수정 성공 시 |
| 301 | Moved Permanently | 3xx 리다이렉트 | 영구 캐싱 권장 | Location | URL 영구 변경 시 검색엔진 SEO 점수를 완전히 이전할 때 |
| 304 | Not Modified | 3xx 리다이렉트 | 클라이언트 캐시 활용 | ETag, Cache-Control | 조건부 요청(If-None-Match) 시 변경이 없어 트래픽을 아낄 때 |
| 400 | Bad Request | 4xx 클라이언트 | 캐싱 불가 | 없음 | JSON 문법 오류, 필수 파라미터 누락 등 요청 스키마 불일치 시 |
| 401 | Unauthorized | 4xx 클라이언트 | 캐싱 불가 | WWW-Authenticate | 인증 자격증명(로그인, API 토큰)이 없거나 유효하지 않을 때 |
| 403 | Forbidden | 4xx 클라이언트 | 캐싱 불가 | 없음 | 사용자는 식별되었으나 해당 리소스에 대한 접근 권한이 없을 때 |
| 404 | Not Found | 4xx 클라이언트 | 조건부 캐싱 가능 | 없음 | 요청한 엔드포인트 URL이나 특정 ID의 데이터가 존재하지 않을 때 |
| 429 | Too Many Requests | 4xx 클라이언트 | 캐싱 불가 | Retry-After | API 호출 속도 제한(Rate Limiting)을 초과했을 때 |
| 500 | Internal Server Error | 5xx 서버 | 캐싱 불가 | 없음 | 핸들링되지 않은 런타임 NullPointer 등 서버 내부 코드 장애 발생 시 |
| 502 | Bad Gateway | 5xx 서버 | 캐싱 불가 | 없음 | Nginx 등 리버스 프록시가 업스트림 웹서버(Node, Spring) 연결 실패 시 |
High-Engagement In-Article Native Ad Slot
(CLS Prevention Active · Zero Shift)사용 방법
11. 상태 코드 번호 또는 상황 키워드 검색
검색창에 3자리 숫자(예: 404, 502, 204)를 직접 입력하거나, '권한 없음', '게이트웨이', '캐시', '리다이렉트' 등의 키워드를 입력합니다.
22. 1xx~5xx 계열별 탭 필터링
상단의 탭을 클릭하여 성공(2xx), 클라이언트 오류(4xx), 서버 오류(5xx) 등 관심 있는 범주의 상태 코드를 모아서 탐색합니다.
33. 상세 기술 규격 및 RFC 시맨틱 분석
선택한 코드의 정확한 RFC 표준 정의, 일반적인 발생 원인, 권장 해결 방법, 캐시 정책 및 관련 HTTP 헤더를 확인합니다.
44. REST API 설계 가이드 복사 및 적용
CRUD 작업(생성 201, 삭제 204, 비동기 접수 202 등)에 적합한 응답 코드 패턴을 확인하고 개발 코드(Express, Spring, Next.js)에 적용합니다.
현업 실무에서의 HTTP 상태 코드 적용 시나리오
백엔드 API 설계부터 Nginx 웹서버 장애 진단까지 필수적인 시나리오입니다.
로그인 세션이 만료되거나 토큰이 없는 경우는 401로 로그인 창 이동을 유도하고, 일반 회원이 관리자 API에 접근할 때는 403을 내려 권한 부족을 명시합니다.
신규 게시글이나 주문 등록 성공 시 201과 함께 `Location: /api/orders/987` 헤더를 전달하여 표준성을 극대화합니다.
리버스 프록시 뒤의 Node.js/Spring 백엔드 데몬이 다운되었거나 포트 바인딩이 실패했음을 식별하고 프로세스를 재기동합니다.
DDoS 방어 및 요금 폭탄 방지를 위해 Redis 기반 율속 제한을 걸고 클라이언트에게 `Retry-After: 60` 헤더를 함께 응답합니다.
💡 HTTP 상태 코드 설계 전문가 팁 & 치명적 안티패턴
오류가 발생했을 때 HTTP 상태 코드는 200으로 두고 본문에 에러 코드를 넣으면 CDN 캐시 오작동과 모니터링 누락을 유발합니다. 반드시 4xx/5xx를 반환하세요.
204 응답에는 HTTP 표준상 어떠한 메시지 본문도 포함될 수 없습니다. 본문을 포함하면 브라우저 파서가 다음 요청과 충돌을 일으킬 수 있습니다.
301은 영구 이동으로 검색엔진이 기존 페이지의 PageRank를 100% 이전하지만, 302는 임시 이동으로 검색 인덱스가 이전되지 않습니다.
동일한 DELETE 요청을 여러 번 보낼 때, 첫 번째 성공은 204, 이후 이미 삭제된 상태에서는 404를 반환하거나 멱등성을 고려해 계속 204를 반환할지 팀 내 컨벤션을 통일하세요.
⚠️ 흔히 하는 실수 & 예방법
자주 묻는 질문 (FAQ)
사용자 및 전문가들이 가장 자주 묻는 핵심 질문과 명확한 해답입니다.
401은 '인증(Authentication) 실패'를 의미합니다. 즉, 서버가 사용자가 누구인지 전혀 모르므로 올바른 자격증명(로그인, API 키)을 제출해야 합니다. 반면 403은 '인가(Authorization) 실패'입니다. 서버가 사용자가 누구인지는 정확히 알고 있으나, 해당 사용자가 요청한 리소스에 접근할 권한이 없음을 뜻하므로 재로그인을 해도 결과가 달라지지 않습니다.
Wide Responsive Banner
(CLS Prevention Active · Zero Shift)관련 도구 추천
cURL → JavaScript Fetch · Axios · Python Requests 코드 변환기
터미널 cURL 명령어를 현대적인 JS Fetch, Axios 클라이언트, Python Requests 비동기 코드로 즉시 변환
CSP 보안 헤더 및 웹 보안 설정 빌더
Content-Security-Policy(CSP), HSTS, X-Frame-Options 헤더를 체크박스로 조합해 Nginx/Next.js 설정 생성
User-Agent 파서 및 브라우저·기기 식별기
브라우저 User-Agent 문자열을 분석해 OS, 브라우저 버전, 기기 종류, 인앱 웹뷰 및 봇 감지
JSON 포매터 및 유효성 검증기
JSON 정렬, 들여쓰기 2칸/4칸/압축(Minify), 문법 에러 위치 감지, 코드/트리 뷰 및 다운로드