클라이언트가 요청을 보냈을 때 서버가 클라이언트에게 응답의 상태를 숫자로 알려주는 코드다. 주로 3자리 숫자로 이루어지며, 각 숫자는 요청 처리 결과에 대한 상태를 나타낸다. 이를통해 요청의 성공이나 추가 작업 필요성을 파악할 수 있다.
ㅇ 5가지 주요 클래스
- 1xx : Informational (정보)
정보 전달을 의미하며 요청을 게속 진행해도 된다는 응답이다.
100 Continue : 클라이언트가 요청을 게속해도됨.
101 Switching Protocols : 서버가 프로토콜 전환을 수락 - 2xx : Success (성공)
요청이 성공적으로 처리되었음을 나타낸다.
200 Ok : 요청이 성공적으로 처리됨
201 Created : 요청이 성공적으로 처리되었고, 새로운 리소스가 생성됨
202 Accepted : 요청이 수락되었으나, 아직 처리되지 않음
204 No Content : 요청은 성공했으나 응답 본문이 없음 - 3xx : Redirection (리다이렉션)
클라이언트가 요청을 완료하려면 추가 작업을 해야함을 의미한다.
301 Moved Permanently : 리소스가 영구적으로 다른 URL로 이동
302 Found : 리소스가 임시적으로 다른 URL로 이동
303 See Other : 클라이언트가 다른 URL로 리다이렉트되어야 함
304 Not Modified : 리소스가 수정되지 않았음, 클라이언트는 캐시를 사용할 수 있음 - 4xx : Client Error (클라이언트 오류)
클라이언트의 요청에 문제가 있을 때 사용된다.
400 Bad Request : 잘못된 요청, 서버가 이해하지 못함
401 Unauthorized : 인증이 필요함
403 Forbidden : 서버가 요청을 거부함, 권한 부족
404 Not Found : 요청한 리소스를 찾을 수 없음
405 Method Not Allowed : 요청 메서드가 허용되지 않음
429 Too Many Requests : 너무 많은 요청으로 인해 제한됨 - 5xx : Server Error (서버 오류)
서버에서 요청 처리 중 문제가 발생했을 때 사용된다.
500 Internal Server Error : 서버에서 알 수 없는 오류가 발생
501 Not Implemented : 서버가 요청 메서드를 지원하지 않음
502 Bad Gateway : 게이트웨이 또는 프록시 서버가 잘못된 응답을 수신
503 Service Unavailable : 서버가 요청을 처리할 준비가 되지 않음
504 Gateway Timeout : 게이트웨이 또는 프록시 서버가 시간초과로 응답하지 않음
ㅇ 주요 상태코드 설명
- 200 OK
가장 일반적인 성공 응답
GET 요청 : 리소스를 가져와 응답 본문에 포함
POST 요청 : 요청 처리 성공과 함께 결과 반환 - 301 Moved Permanently
리소스가 새로운 URL로 영구적으로 이동
클라이언트는 이후부터 새 URL을 사용해야 함. - 404 Not Found
요청한 URL에 리소스가 없음
사용자 요청 경로를 확인해야함 - 500 Internal Server Error
서버가 요청을 처리하는 도중 예상치 못한 문제가 발생
서버 로그를 확인하여 원인을 파악해야함
ㅇ 활용할 수 있는 사례
- RESTful API 설계에서 요청 결과를 전달하는 데 중요한 도구로 쓰임
- 사용자에게 명확한 피드백 제공
- 상태코드로 문제 식별 문제 해결 및 디버깅 가능
- 상태코드를 기반으로한 비즈니스 로직 처리 가능
'Web' 카테고리의 다른 글
[Web] Web과 WAS의 차이 (0) | 2024.11.27 |
---|---|
[Web] REST API (1) | 2024.11.27 |
[Web] HTTP Request Method (1) | 2024.11.27 |
CS Cache(캐시) (1) | 2024.10.10 |
[Web] 쿠키와 세션의 차이 (1) | 2024.10.10 |