HTTP 상태 코드는 서버가 클라이언트의 요청을 처리한 결과를 나타내는 숫자 코드이며, 이를 통해 클라이언트는 요청의 성공 여부와 그 원인을 파악할 수 있다. 상태 코드는 다섯 가지 범주로 분류됩니다.
- 1xx (정보 응답)
- 이 범주의 상태 코드는 요청을 받았으며 프로세스가 계속 진행 중임을 나타낸다.
- 예: 100 Continue - 클라이언트는 요청을 계속해야 함을 나타낸다.
- 2xx (성공)
- 이 범주의 상태 코드는 클라이언트의 요청이 성공적으로 수신, 이해, 수락되었음을 나타낸다.
- 예: 200 OK - 요청이 성공적으로 처리되었음을 나타낸다.
- 예: 201 Created - 요청이 성공하였고 그 결과로 새 리소스가 생성되었음을 나타낸다.
- 3xx (리다이렉션)
- 이 범주의 상태 코드는 요청을 완료하기 위해 추가 조치가 필요함을 나타낸다.
- 예: 301 Moved Permanently - 요청된 리소스가 영구적으로 새 위치로 이동되었음을 나타낸다.
- 예: 302 Found - 요청된 리소스가 일시적으로 다른 URI에 위치해 있음을 나타낸다.
- 4xx (클라이언트 오류)
- 이 범주의 상태 코드는 클라이언트의 요청에 오류가 있어 요청을 처리할 수 없음을 나타낸다.
- 예: 400 Bad Request - 서버가 요청을 이해하지 못했음을 나타낸다.
- 예: 401 Unauthorized - 요청이 인증을 필요로 함을 나타낸다.
- 예: 404 Not Found - 요청한 리소스를 찾을 수 없음을 나타낸다.
- 5xx (서버 오류)
- 이 범주의 상태 코드는 서버가 유효한 요청을 처리할 수 없음을 나타낸다.
- 예: 500 Internal Server Error - 서버에 오류가 발생하여 요청을 처리할 수 없음을 나타낸다.
- 예: 503 Service Unavailable - 서버가 일시적으로 요청을 처리할 수 없음, 보통 유지보수 또는 오버로드 때문에 발생한다.
이 상태 코드들은 웹 개발에서 클라이언트와 서버 간의 커뮤니케이션을 명확하게 하는 데 매우 중요하며, 오류 처리 및 사용자 경험을 개선하는 데 기여한다.
4xx (클라이언트 오류)
4xx 상태 코드는 요청에 문제가 있어 서버가 요청을 수행할 수 없음을 나타낸다. 이는 주로 클라이언트의 잘못된 요청으로 인한 것으로, 클라이언트가 오류를 수정해야 한다는 것을 의미한다.
• 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
• 오류의 원인이 클라이언트에 있음
• 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실
패함
- 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
-
- 서버가 요청을 이해하지 못했을 때 반환되는 코드로, 요청 형식이 잘못되었거나 요청에 불충분한 정보가 포함되어 있을 때 사용된다.
- 요청 구문, 메시지 등등 오류
- 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
- 클라이언트는 요청 내용을 다시 검토하고, 보내야함
- 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함
요청이 인증을 필요로 할 때 사용되며, 클라이언트가 자격증명을 제공하지 않았거나 제공한 자격증명이 유효하지 않을 때 반환된다.
- 403 Forbidden 서버가 요청을 이해했지만 승인을 거부함
서버가 요청을 이해했지만 승인을 거부할 때 사용된다. 주로 권한이 없는 접근을 시도했을 때 반환된다.
- 404 Not Found 요청 리소스를 찾을 수 없음
요청한 리소스를 서버에서 찾을 수 없을 때 사용된다. 주소 오류나 링크 손상 등이 원인일 수 있다.
요청 리소스가 서버에 없음
또는 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을 때
- 429 Too Many Requests
- 클라이언트가 허용된 시간 동안 너무 많은 요청을 보냈을 때 사용된다. 주로 요청 제한을 초과했을 때 반환된다.
5xx (서버 오류)
5xx 상태 코드는 서버 측에서 문제가 발생하여 요청을 수행할 수 없음을 나타낸다. 이 경우 서버 내부의 문제를 해결해야 요청을 정상적으로 처리할 수 있다.
- 500 Internal Server Error
- 서버 내부 오류로 요청을 수행할 수 없을 때 반환된다. 원인은 서버 구성 오류, 서버 코드의 버그 등 다양할 수 있다.
- 502 Bad Gateway
- 서버가 게이트웨이나 프록시 역할을 하면서, 상위 서버로부터 유효하지 않은 응답을 받았을 때 사용된다.
- 503 Service Unavailable
- 서버가 일시적으로 요청을 처리할 수 없을 때 사용된다. 보통 서버 유지보수 중이거나 과부하 때문에 발생한다.
- 504 Gateway Timeout
- 게이트웨이나 프록시 서버가 상위 서버로부터 시간 내에 응답을 받지 못했을 때 사용된다.
- 507 Insufficient Storage
- 서버가 요청을 처리하기에 충분한 저장 공간이 없을 때 사용된다.
'CS' 카테고리의 다른 글
[HTTP | HTTP 웹 기본지식 | HTTP 헤더2 - 캐시와 조건부 요청] 캐시, 프록시 캐시 (0) | 2024.05.23 |
---|---|
[HTTP | HTTP 웹 기본지식 | HTTP 헤더1 - 일반 헤더] 표현, 협상, 쿠키 (0) | 2024.05.22 |
[HTTP | HTTP 웹 기본지식 | HTTP 메서드 활용] HTTP API 설계 예시 (0) | 2024.05.22 |
[HTTP | HTTP 웹 기본지식 | HTTP 메서드] HTTP 메서드 (0) | 2024.05.21 |
[HTTP | HTTP 웹 기본지식 | HTTP 기본] HTTP 구조 (0) | 2024.05.21 |