티스토리 뷰

HTTP Status code는 http 요청에 대한 상태를 알려주는 코드입니다.

굉장히 많은 status code가 있는데, 모든 status code가 중요한 것은 아니라서 자주 쓰이는 코드만 정리해보려고 합니다.

 

구조


1~5로 시작하고 3자리 숫자로 이루어져있습니다.

 

 

맨 앞 숫자의 의미


  • 1xx(Information, 정보) : 요청을 받았으며 처리 진행중
  • 2xx(Successful, 성공) : 요청을 성공적으로 받았으며 정상적으로 처리
  • 3xx(Redirection, 리다이렉션) : 요청 완료를 위해 추가 행동이 필요
  • 4xx(Client Error, 클라이언트 오류) : 클라이언트 오류로 인해 요청을 처리할 수 없음
  • 5xx(Server Error, 서버 오류) : 서버 오류로 인해 서버가 요청을 처리할 수 없음

 

1XX


요청에 성공했으며, 처리가 진행중이라고 알려주는 코드입니다.

잘 사용되지 않아 상세코드는 생략하겠습니다.

 

2XX


요청이 성공했음을 나타냅니다.

200 OK

요청 정상 처리를 나타냅니다.

201 Created

요청이 성공했으며, 새로운 리소스가 생성되었음을 나타냅니다.

즉, 요청으로 인해 서버에 새로운 데이터가 생성되었을 때 사용합니다.

202 Accepted

요청이 접수되었으나 처리가 완료 되지 않았음을 나타냅니다.

예를 들어 서버에 스케쥴러나 배치가 돌아간 후에 응답을 줄 수 있는 경우에 사용합니다.

204 No Content

요청이 성공했지만 돌려보낼 응답(body)이 없을 때 사용합니다.

리소스 저장 등 성공 여부만 확인하면 되는 요청일 때 사용합니다.

 

3XX


페이지 리다이렉션과 관련있는 코드입니다.

리소스의 위치가 변경되어서 클라이언트 단에서 추가 조치(리다이렉션)이 필요할 때 사용합니다.

3XX 응답과 함께 Location 헤더에 바뀐 리소스 위치를 넣어주면 웹브라우저가 자동으로 리다이렉트합니다.

자주 쓰이는 것은 아니라서 생략하겠습니다.

 

 

4XX


요청에 클라이언트 오류가 있을 때 발생합니다.

이 오류가 발생했다면 클라이언트 상에서 구문 오류가 있거나 요청 파라미터나 페이로드가 잘못되었는지 확인해보아야합니다.

400 Bad Request

클라이언트 오류로 인해서 요청을 처리할 수 없음을 나타냅니다.

구문 오류가 없는지, 요청 스펙(header, query string, body등)에 맞게 요청을 작성하였는지 확인해보아야 합니다.

 

401 Unauthorized

클라이언트 신원이 확인되지 않았을 때 발생합니다.

만료되거나 올바르지 않은 JWT를 보내는 등 사용자를 인증할 수 없는 경우입니다.

 

403 Forbidden

요청은 접수되었으나 서버에서 요청 수행을 거부했을 때 발생합니다.

주로 신원은 확인되었지만 접근 권한이 없는 경우입니다.

404 Not Found

요청 리소스를 찾을 수 없을 때 발생합니다.

 

 

5XX


서버 측에서 오류가 있을 때 발생합니다.

500 Internal Server Error

서버 내부 문제로 오류가 발생했음을 나타냅니다.

서버는 클라이언트에서 제어할 수 없기 때문에 코드를 세분화 하여도 클라이언트에서 대응할 수 있는 방법이 거의 없습니다.

그래서 대부분의 서버 오류는 500으로 뭉뚱그려 처리됩니다.

 

503 Service Unavailable

서버가 이용 불가 상태라 요청을 처리할 수 없을 때 발생합니다.

예를 들어 서버가 다운되는 등의 이유가 있을 수 있습니다.

 

 

(추가) X00 코드의 의미

X00 코드는 X01~XXX 코드 내용을 모두 포함하는 의미입니다.
예를 들어 200 OK는 201 Created, 202 Accepted, 204 No Content의 의미를 모두 포함합니다.
응답이 X00가 아니라 세부적으로 나누어 오는 것은 서버에서 얼마나 세분화해서 응답 코드를 짜주냐에 따라 달라지게 됩니다.

또 http 스펙(버전-1.0~3.0) 환경에 따라 이용 가능한 코드범위가 다를 수 있습니다.
이 때 클라이언트가 이해할 수 없는 코드라면 상위코드인 X00번 코드로 이해하고 처리합니다.

 

 

감사합니다.

 

Ref.

인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식(김영한)

https://www.rfc-editor.org/rfc/rfc9110.html

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함