반응형
HTTP 상태 코드의 개념
HTTP 상태 코드(HTTP Status Code)는 클라이언트가 서버에게 요청(request)을 보낸 후, 서버가 해당 요청을 처리한 결과를 알려주는 세 자리 숫자의 응답 코드입니다. 상태 코드의 첫 번째 숫자에 따라 상태 코드의 유형을 파악할 수 있으며, 주로 웹 개발, API 개발, 클라이언트와 서버 간 통신 등 다양한 분야에서 사용됩니다.
HTTP 상태 코드의 분류와 의미
HTTP 상태 코드는 크게 5가지 유형으로 나뉘며 각 첫 번째 숫자로 구분됩니다.
1xx (정보 제공 상태 코드)
클라이언트 요청이 수신되었으며, 프로세스가 계속 진행 중임을 나타냅니다.
- 100 Continue: 클라이언트가 서버에 요청을 보내기 전에 서버가 요청을 수락할 준비가 되었는지 확인할 때 사용됩니다.
- 101 Switching Protocols: 프로토콜 전환을 요청하며, 주로 웹소켓(WebSocket)에서 사용됩니다.
실무에서 사용 예시
- 대용량 파일 업로드 전, 서버가 요청을 처리할 준비가 되었는지 확인할 때(100 Continue).
- 웹소켓 통신 시작 시 프로토콜 전환 시(101 Switching Protocols).
2xx (성공 상태 코드)
클라이언트의 요청이 성공적으로 수신, 처리되었음을 의미합니다.
- 200 OK: 일반적인 성공 응답으로, 가장 많이 쓰이는 상태 코드입니다.
- 201 Created: 리소스가 성공적으로 생성되었음을 나타냅니다.
- 202 Accepted: 요청이 접수되었지만, 즉시 처리되지 않고 나중에 처리됨을 나타냅니다.
- 204 No Content: 성공했으나 반환할 콘텐츠가 없음을 나타냅니다. 주로 DELETE 요청 시 많이 사용됩니다.
실무에서 사용 예시
- GET 요청 처리 후 정상적으로 데이터 제공 시 (200 OK).
- 새로운 사용자 등록, 새로운 게시글 작성 후 (201 Created).
- 대량의 데이터를 처리할 때, 즉시 응답이 불가능하여 비동기적으로 처리될 때 (202 Accepted).
- 리소스 삭제 후 응답 본문이 필요 없을 때 (204 No Content).
3xx (리다이렉션 상태 코드)
요청한 리소스가 다른 위치로 옮겨졌거나, 다른 위치에서 처리되어야 함을 나타냅니다.
- 301 Moved Permanently: 요청한 리소스가 영구적으로 새로운 위치로 옮겨졌을 때 사용됩니다.
- 302 Found: 일시적으로 새로운 위치로 리소스가 옮겨졌음을 나타냅니다.
- 304 Not Modified: 이전에 요청된 리소스가 변경되지 않았으므로 캐시에서 가져와도 된다고 클라이언트에 알립니다.
실무에서 사용 예시
- 도메인 주소가 변경되었을 때 (301).
- 특정 페이지가 임시 점검 등으로 인해 다른 페이지로 임시 이동되었을 때 (302).
- 브라우저 캐시를 활용하여 성능 향상을 위한 응답(304).
4xx (클라이언트 오류 상태 코드)
클라이언트의 요청에 문제가 있을 때 발생합니다.
- 400 Bad Request: 클라이언트 요청 구문이 잘못되었거나 부정확할 때 사용됩니다.
- 401 Unauthorized: 사용자의 인증이 필요함을 나타냅니다.
- 403 Forbidden: 요청이 서버에 의해 금지되어 있음을 나타냅니다.
- 404 Not Found: 요청한 리소스가 존재하지 않음을 나타냅니다.
- 405 Method Not Allowed: 해당 URL에서 사용 불가능한 HTTP 메서드를 사용할 때 나타납니다.
- 409 Conflict: 요청이 서버의 현재 상태와 충돌이 일어났을 때 사용됩니다.
실무에서 사용 예시
- 잘못된 요청 형식의 파라미터를 전송했을 때 (400).
- 로그인이 필요한 자원에 접근 시도할 때 (401).
- 특정 자원 접근 권한이 없는 사용자가 접근 시도할 때 (403).
- 존재하지 않는 웹 페이지 접근 시 (404).
- PUT이나 DELETE 메서드를 지원하지 않는 URL에서 해당 메서드 사용 시 (405).
- 데이터가 중복되어 충돌 발생 시 (409).
5xx (서버 오류 상태 코드)
서버가 클라이언트의 요청을 처리하는 과정에서 오류가 발생했음을 나타냅니다.
- 500 Internal Server Error: 서버 내부적으로 오류가 발생하여 요청을 처리할 수 없을 때 사용됩니다.
- 502 Bad Gateway: 서버가 게이트웨이 역할을 할 때 다른 서버에서 잘못된 응답을 받을 경우 사용됩니다.
- 503 Service Unavailable: 서버가 일시적으로 사용 불가능한 상태임을 나타냅니다.
- 504 Gateway Timeout: 게이트웨이가 다른 서버로부터 응답을 제시간 내에 받지 못했을 때 사용됩니다.
실무에서 사용 예시
- 서버 내부 로직 처리 중 예외 발생으로 인해 오류 발생 시(500).
- 서버가 여러 개 연계되어 있을 때 연계된 서버로부터 잘못된 응답 시(502).
- 유지보수 또는 과부하로 인해 서비스가 잠시 중단된 경우(503).
- 서버 간 요청 처리 시간이 초과될 경우(504).
정리 요약
- HTTP 상태 코드는 1xx ~ 5xx로 나뉘며, 숫자의 첫 번째 자리로 상태 유형을 구분합니다.
- 웹 개발 및 API 개발에서 필수적으로 사용되는 개념이며, 클라이언트가 요청 결과를 명확히 이해할 수 있도록 돕습니다.
- 실무에서는 각 상태 코드별로 상황에 맞게 적절하게 사용하는 것이 중요합니다.
반응형
'CS 공부일지 > 네트워크 공부일지' 카테고리의 다른 글
OSI 7계층별 네트워크 장치의 개념 및 실무 사용법 총정리 (0) | 2025.04.14 |
---|---|
개발자를 위한 HTTP 메서드 완벽 정리(GET, POST, PUT, PATCH 상세 비교) (0) | 2025.04.14 |
로그인 세션 vs 토큰 인증 완전정리 (Access, Refresh, 실무적용 비교) (0) | 2025.04.13 |
웹 브라우저 저장소 총정리: 쿠키, 세션스토리지, 로컬스토리지의 차이점 (0) | 2025.04.13 |
LocalStorage vs 캐시 vs 오리진 정책: 웹 저장소와 보안 핵심 (0) | 2025.04.12 |