HTTP Error Code (HTTP 상태 코드)
by 현생사는갓생지망생반응형
모든 HTTP 응답 코드는 5개의 클래스(분류)로 구분된다
👉🏻 상태 코드의 첫 번째 숫자는 응답의 클래스를 정의
- 1xx (정보) : 요청을 받았으며 프로세스를 계속한다
- 2xx (성공) : 요청을 성공적으로 받았으며 인식했고 수용하였다
- 3xx (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요하다
- 4xx (클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
- 5xx (서버 오류) : 서버가 명백히 유효한 요청에 대해 충족을 실패했다
🔢 Error Code 정리
1. 정보
- 100 Continue
2. 정상 처리
- 200 OK : 주로 GET 요청에 대한 응답
- 201 Created : 요청이 수행되어 새로운 리소스가 생성됨을 의미. 주로 POST 요청에 대한 응답
- 202 Accepted : 요청 접수 후 일정 시간이 지난 후 요청을 처리하는 경우의 응답
- 203 Non-Authoritative Information : 요청이 수행되었으나, 검증이 되지 않음을 의미
- 204 No Content : 응답 payload에 보낼 데이터가 없음을 의미하며, 주로 DELETE 요청에 대한 응답
3. 리다이렉션
- 300 Multiple Choices : 요청에 대해 하나 이상의 리소스가 존재함
- 301 Moved Permanently : 요청한 리소스의 URI가 변경되었음을 의미
- 302 Found : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미
- 304 Not Modified : 리소스가 수정되지 않음을 의미
- 307(Temporary), 308(Permanent) : 302와 유사하며, 클라이언트는 HTTP 메서드를 유지한 채 요청을 재송신할 필요가 있음을 의미
4. 클라이언트 오류
- 400 Bad Request : 잘못된 문법 등으로 인해 서버가 요청을 이해할 수 없음
- 401 Unauthorized : 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답
- 403 Forbidden : 클라이언트가 접근 권한이 없는 경우
- 401과 차이는 서버가 클라이언트가 누구인지 알고 있다는 것
- 404 Nod Found : 요청한 리소스가 존재하지 않은 경우
- 인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 403 대신 전송 하기도 함
- 405 Method Not Allowed : 현재 리소스에 맞지 않는 Method 사용한 경우
5. 서버 오류
- 500 Internal Server Error : 서버에 오류가 발생하여 응답 불가능
- 501 Not Implemented : 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미
- 502 Bad Gateway : Gateway로부터 잘못된 응답 수신
- 보통 서버에 접속하는 사용자가 많아 과부하 된 경우 발생
- 503 Service Unavailable : 서버가 요청을 처리할 준비가 되지 않음을 의미
- 504 Gateway Timeout : 서버가 게이트웨이 역할을 하고 있으며, 한 서버가 액세스 하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미
☝🏻 GET / POST 개념
GET : 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청
POST : 리소스를 생성, 업데이트하기 위해 서버에 데이터를 보내는 데 사용
‼️📢 HTTP 응답 코드를 이용하여 Alert을 설정할 수도 있다
예를 들어 4xx 응답 코드에 대하여 Alert을 설정해둔 경우, 404 에러가 지속된다면
사용할 수 있는 취약점이 있는지 찾아보는 공격이나 DDoS 공격을 의심해 볼 수 있다
5xx 응답 코드에 대한 Alert이 발생하는 경우는 서버 측 오류이므로 자신의 서비스를 점검해 볼 필요가 있다
이처럼, 상황에 맞게 적절한 응답 코드를 사용하여 서비스 모니터링이 가능하다
✍🏻 참고
HTTP 상태 코드 위키백과 https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C
반응형
'깨알지식' 카테고리의 다른 글
HP Cache Battery의 역할과 RAID Controller 방식 (0) | 2024.01.11 |
---|---|
Window11에 WSL 사용하여 Linux (Ubuntu) 설치 (0) | 2024.01.10 |
Ubuntu 22.04 LTS ("Jammy")에 MongoDB Version 6 설치하기 (1) | 2024.01.09 |
블로그의 정보
현생이네
현생사는갓생지망생