티스토리 뷰
반응형
HTTP 상태 코드(HTTP Status Codes)는 클라이언트(브라우저)와 서버 간의 통신 결과를 나타내는 표준화된 숫자 코드입니다. 이 코드는 RFC 7231 및 IANA(Internet Assigned Numbers Authority)의 표준을 따르며, 웹 개발자와 시스템 관리자에게 통신 성공 여부나 오류의 원인을 정확히 진단하게 해주는 이정표 역할을 합니다.
각 상태 코드는 3자리 숫자로 구성되며, 첫 번째 자릿수는 해당 코드의 범위(Class)를 나타냅니다.
1. HTTP 상태 코드 범류(Class) 요약
| 범위 | 카테고리 | 의미 |
| 1xx | Informational (정보 제공) | 요청을 받았으며 프로세스가 계속 진행 중임을 나타냄 |
| 2xx | Success (성공) | 요청이 성공적으로 수신되었고, 이해되었으며 수용됨 |
| 3xx | Redirection (리다이렉션) | 요청 완료를 위해 추가적인 동작(위치 이동 등)이 필요함 |
| 4xx | Client Error (클라이언트 오류) | 요청에 잘못된 문법이 있거나 요청을 수행할 수 없음 (사용자 잘못) |
| 5xx | Server Error (서버 오류) | 서버가 유효한 요청을 명백하게 수행하지 못함 (서버 잘못) |
2. 상세 코드 분석 (상태별 설명)
2.1 1xx: 정보 제공 (Informational)
대부분의 일반적인 웹 브라우징에서는 자주 보기 힘든 코드입니다.
- 100 Continue: 현재까지의 상태가 괜찮으니 요청을 계속하라는 의미입니다.
- 101 Switching Protocols: 클라이언트가 서버에 프로토콜 변경을 요청했을 때(예: HTTP에서 WebSocket으로), 서버가 이를 승인하고 전환 중임을 알립니다.
2.2 2xx: 성공 (Success)
가장 이상적인 결과입니다.
- 200 OK: 요청이 성공적으로 처리되었습니다. (가장 흔한 코드)
- 201 Created: 요청이 성공적이었으며, 그 결과로 새로운 리소스가 생성되었습니다. (주로 POST 요청 후 발생)
- 204 No Content: 요청은 성공했으나 응답 바디에 보낼 데이터가 없습니다. (주로 삭제 요청 후 발생)
2.3 3xx: 리다이렉션 (Redirection)
리소스의 위치가 변경되었을 때 발생합니다.
- 301 Moved Permanently: 요청한 리소스의 URI가 영구적으로 변경되었습니다. 검색 엔진(SEO)에 주소 변경을 알릴 때 중요합니다.
- 302 Found (Temporary Redirect): 리소스가 일시적으로 다른 위치에 있습니다.
- 304 Not Modified: 클라이언트가 캐시한 버전이 아직 유효하므로, 데이터를 다시 전송하지 않고 기존 캐시를 사용하도록 합니다. (대역폭 절약 효과)
반응형
2.4 4xx: 클라이언트 오류 (Client Error)
가장 빈번하게 발생하며, 사용자의 입력이나 요청 방식에 문제가 있는 경우입니다.
- 400 Bad Request: 서버가 이해할 수 없는 잘못된 구문(Syntax)으로 요청했습니다.
- 401 Unauthorized: 해당 리소스에 접근하려면 로그인이 필요하거나 인증 정보가 유효하지 않습니다.
- 403 Forbidden: 인증은 되었으나, 해당 리소스에 접근할 권한이 없습니다. (예: 일반 사용자가 관리자 페이지 접근 시)
- 404 Not Found: 요청한 리소스를 서버에서 찾을 수 없습니다. (URL 오타 혹은 페이지 삭제)
- 405 Method Not Allowed: 해당 리소스에 대해 허용되지 않는 HTTP 메소드(GET, POST 등)를 사용했습니다.
- 429 Too Many Requests: 정해진 시간 내에 너무 많은 요청을 보냈습니다. (Rate Limiting)
2.5 5xx: 서버 오류 (Server Error)
클라이언트의 요청은 정상이나, 서버 환경의 문제로 처리가 안 되는 경우입니다.
- 500 Internal Server Error: 서버 내부의 알 수 없는 오류입니다. (코드 버그, 설정 문제 등 포괄적)
- 502 Bad Gateway: 게이트웨이나 프록시 서버가 상위 서버로부터 잘못된 응답을 받았습니다.
- 503 Service Unavailable: 서버가 일시적인 과부하 또는 점검으로 인해 요청을 처리할 수 없습니다.
- 504 Gateway Timeout: 게이트웨이 역할을 하는 서버가 상위 서버의 응답을 기다리다 시간을 초과했습니다.
3. 주요 HTTP 오류 코드 일람표 (Reference Table)
| 코드 | 메시지 | 발생 원인 및 해결 방법 |
| 200 | OK | 정상 처리. 추가 조치 필요 없음. |
| 301 | Moved Permanently | 주소가 완전히 바뀜. 새로운 주소로 자동 연결됨. |
| 400 | Bad Request | 요청 파라미터 확인. JSON 형식이 틀렸거나 필수 값 누락. |
| 401 | Unauthorized | 아이디/비밀번호 확인, 혹은 API 토큰 만료 확인. |
| 403 | Forbidden | 접근 권한 설정 확인 (ACL, 권한 그룹 등). |
| 404 | Not Found | URL 경로 확인. 삭제된 게시글이나 페이지인지 확인. |
| 500 | Internal Server Error | 서버 로그 확인 필요. 코드 내 Exception 발생 가능성 높음. |
| 502 | Bad Gateway | Nginx-Gunicorn 등 서버 간 연결 상태 확인. |
| 503 | Service Unavailable | 서버 사양 업그레이드 또는 트래픽 분산(Load Balancing) 필요. |
| 504 | Gateway Timeout | 쿼리 처리 시간이 너무 길거나 외부 API 응답 지연 확인. |
본 가이드는 다음의 글로벌 표준 기구 및 개발자 문서를 기반으로 작성되었습니다.
- RFC 7231 (IETF): HTTP/1.1의 의미론과 콘텐츠를 규정하는 공식 표준 문서.
- MDN Web Docs (Mozilla): 전 세계 개발자들이 가장 많이 참조하는 웹 기술 상세 문서.
- IANA (Internet Assigned Numbers Authority): 모든 HTTP 상태 코드를 공식적으로 등록하고 관리하는 기관.
#HTTPStatusCodes #WebDevelopment #RestAPI #Networking #404NotFound #500InternalError #ServerAdministration #RFC7231 #WebStandard #BackendEngineering #Troubleshooting #HTTPS #API_Design
'Program Development' 카테고리의 다른 글
| 프로그래밍 언어별 주석 처리 방법 총정리 (0) | 2026.06.02 |
|---|---|
| C# 소켓 프로그래밍 - 비동기 채팅 프로그램 만들기 (1:n 통신) (13) | 2018.08.31 |
| [C#] 자동차 번호판 인식 프로그램 with Tesseract-OCR, OpenALPR (27) | 2018.08.22 |
| [TCP/IP] C# 소켓 프로그래밍 - 채팅 프로그램 만들기 (11) | 2018.08.20 |
| C# 바코드 인식 프로그램 (9) | 2018.08.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 클래스
- 정보처리기사
- 블루투스
- 리스트
- 배열
- String
- Java
- 아두이노
- 데이터베이스
- c#
- C
- OpenCV
- 알고리즘
- 자료구조
- Android
- DB연동
- C언어
- MySQL
- 안드로이드
- 파이썬
- 벡터
- 자바
- Class
- html
- 상속
- 문제풀이
- C++
- 파일처리
- C++ 클래스
- 문자열
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
글 보관함
반응형
