HTTP Response Status code

Hyun-jin Won·2021년 9월 8일

HTTP 웹지식

목록 보기
5/5

Response Status Code

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다
MDN Web Doc - HTTP 상태코드

Http 통신은 Response 에 요청한 Request의 결과를 특정 숫자값으로 넘겨주는데 이를 Response Status Code 라고 한다. 해당 코드는 규격화 되어있으며 직접 만들어 사용할 수도 있다.

1xx 번대

해당 번호대는 현재 요청한 서비스가 진행중이라고 알릴 때 사용되는 코드이다.
해당 번호는 잘 사용하지 않는 번호대이다.

100 continue

해당 요청이 진행 중임을 알리는 상태코드이다.

2xx 번대

해당 번호대는 현재 요청한 서비스가 정상적으로 처리됨을 알리는 코드이다.
백엔드 개발시 가장 많이 사용되는 코드 중 하나다. 실제로 개발할 때 해당 코드를 가장 많이 사용하기도 했다.

200 OK

해당 요청이 성공했다는 것을 의미한다.
주로 Body에 해당 요청에 대한 결과가 들어있다.

201 Created

해당 요청이 성공했다는 것을 의미하는데 주로 PUT, POST와 같은 리소스 삽입에 대한 결과로 주로 사용된다. 이 경우에는 주로 Http header Location에 생생된 리소스의 URL 주소를 담아서 던져 준다.

202 Accepted

해당 요청을 수용했지만 어떠한 이유로 아직 실행되지 않음을 의미한다.

204 No Content

해당 요청을 성공적으로 수행했으나 결과데이터가 없는 경우를 의미한다.
DELETE 등 요청에 대한 특정 데이터의 반환값이 없을 때 사용한다.

3xx 번대

해당 번호대는 현재 요청된 서비스에서 추가적인 작업이 필요할 때 사용합니다.
주로 특정 행동 이후 다른 링크로 이동할 때 사용합니다. (redirect)
이 경우 Http Header 의 Location 에 해당 URL 정보가 들어가있습니다.

301 Moved Permanently

해당 리소스의 위치가 변경됬음을 의미한다.
하지만 브라우저에서는 redirect로 동작하며, request Method와 관계없이 보통 GET Method로 redirect 가 작동합니다. 즉 redirect 동작이 확실하지 않다. 하지만 보통 실무에서는 redirect가 GET으로 동작하게끔 사용한다고 한다.

302 Found

해당 리소스를 찾았지만 위치가 임시적으로 변경되었음을 말합니다.
Location에 해당 정보가 포함되어 있습니다. 이 또한 redirect 시 보통 GET으로 동작합니다.

303 See Other

302 Found 와 동일하지만 redirect 요청이 무조건 GET으로 전송됩니다.

307 Temporary Redirect

302 Found 와 동일하지만 redirect 요청이 기존 request 요청과 동일한 Method로 전송됩니다.
예로들어 request 가 POST 라면 redirect 또한 POST로 동작합니다.

4xx 번대

해당 번호대 부터는 요청된 서비스가 실패했음을 의미한다.
그 중 클라이언트의 실수(잘못된 query, body 데이터, 잘못된 링크 등)로 인해 발생된 문제일 시 해당 상태코드를 반환하게 된다.

400 Bad Request

해당 번호대는 request의 문법에 이상이 있을 때 반환하는 코드이다.

401 Unauthorized

해당 번호대는 유저 인증이 필요할 때 반환하는 코드이다.
해당 코드가 처음으로 들어오면 일반적으로 유저인증을 거치며, 해당 인증에 실패하여 또 다시 401 코드를 받는다면 인증 실패로 처리한다.

403 Forbidden

해당 번호대는 해당 유저가 접근할 수 없는 리소스를 접근하려고 할 때 발생하는 코드이다.
401과 다른 점이라면 해당 코드는 서버가 유저의 정보를 알고 있을 때 발생한다.

404 Not Found

해당 번호대는 해당 유저가, 찾을 수 없는 리소스를 접근하려는 경우에 발생한다.
주로 해당 URL이 없거나, 리소스의 데이터가 없는 경우에 사용하며, 보안상의 문제로 모든 에러를 404 코드로 처리하는 경우도 존재한다.

5xx 번대

해당 번호대 또한 요청 서비스가 실패했다는 것을 의미한다.
하지만 이번엔 그 책임이 서버에 있을 경우에 이를 반환한다.

502 Bad Gateway

서버가 해당 작업 도중, 또는 해당 요청을 위한 게이트웨이 접근 도중 실패했음을 의미한다.

503 Service Unavailable

서버가 특정 이유로 인하여 해당 요청을 실행할 수 없음을 의미합니다.
이 때에는 HTTP header 에 Retry-After 값으로 언제 재시도가 가능한지 알려줄 수 있어야 한다. (하지만 실제로는 적용하기 어렵다. 언제 서버를 고칠 줄 알겠는가 ...)

504 Gateway Timeout

이 오류 응답은 서버가 게이트웨이 역할을 하고 있으며 적시에 응답을 받을 수 없을 때 주어진다.

profile
삽질을 주체하지 못하는 잉간

0개의 댓글