자주 사용하는 10가지 HTTP Status Code

황윤서·2021년 10월 10일
8
post-thumbnail

개인 프로젝트에서 자주 사용했던 HTTP Status Code를 기준으로 정리해보았습니다.

<참고자료>

1. 200 OK

가장 일반적으로 많이 사용하는 Status Code로 요청이 성공했음을 의미합니다.

  • 상황 1 : 아이템 리스트 가져오는 API의 성공
  • 상황 2 : 로그인 성공

2. 201 Created

회원가입(유저 생성), 글 작성 등 어떠한 리소스의 생성을 성공적으로 완료했을 때 사용하는 Status Code로 일반적으로 POST 요청에서 많이 사용합니다.

  • 상황 1 : 회원가입 성공
  • 상황 2 : 글 작성 성공

3. 400 Bad Request

주로 Query Parameter나 Request Body로 들어오는 데이터의 형식이 올바르지 않을 때와 같이 서버가 요청을 이해할 수 없는 상황에서 사용합니다.

  • 상황 1 : 회원가입 시 올바르지 않은 아이디/비밀번호 형식
  • 상황 2 : 필수로 요구하는 Query Parameter를 누락했을 때

4. 401 Unauthorized

인증되지 않은 상태에서 인증이 필요한 리소스에 접근할 때 사용하는 Status Code입니다. 주로 Access Token를 요구할 때 유효하지 않은 Token을 받았을 때 응답했습니다.

  • 상황 1 : 로그인하지 않은 상태에서 자신의 사용자 정보 요청
  • 상황 2 : 로그인하지 않은 상태에서 글 작성

5. 403 Forbidden

인증된 상태에서 권한이 없는 리소스에 접근할 때 사용하는 Status Code입니다. 예를 들어 로그인을 한 상태에서 다른 유저의 좋아요 상태를 변경시키는 API를 호출하는 경우 이 Status Code를 사용했습니다.

  • 상황 1 : 로그인했지만 다른 유저의 비밀번호를 변경하는 API 요청한 경우
  • 상황 2 : 로그인했지만 관리자용 API를 요청한 경우

6. 404 Not Found

가장 친숙한 Status Code이지 않을까 싶습니다. 주로 찾고자 하는 리소스가 없을 때, 요청한 API Route가 존재하지 않을 때 사용했습니다.

  • 상황 1 : /ewoifjwioefjio와 같이 존재하지 않는 Route에 요청을 보냈을 때
  • 상황 2 : 존재하지 않는 글을 요청했을 때

7. 405 Method Not Allowed

해당 HTTP Method에 대해서 요청을 막기 위한 용도로 사용하는 Status Code로 주로 특정 Method에 대해서 처리를 구현하지 않았을 때(해당 메서드를 지원하지 않을 때) 사용했습니다.

  • 상황 : 어떤 리소스에 대해서 수정/삭제를 막고 가져오기만 허용하고 싶을 때

8. 409 Conflict

요청이 현재 서버의 상태와 충돌될 때 사용하는 Status Code로 이미 회원가입된 유저에 대해서 다시 회원가입을 시도할 때 등의 상황에서 사용했습니다.

  • 상황 1 : 중복 회원가입 요청이 발생했을 때
  • 상황 2 : 이미 좋아요 처리된 아이템에 대해서 다시 좋아요 요청을 했을 때

9. 413 Payload Too Large

Payload의 크기가 서버에서 정의한 한계보다 클 때 사용하는 Status Code입니다. 파일 등을 전달받을 때 파일의 크기가 정의한 값보다 큰 경우와 같은 상황에서 사용했습니다.

  • 상황 1 : 전달받은 파일의 크기가 정의한 값보다 클 때

10. 500 Bad Gateway

서버에서 예외처리되지 않은 오류에 대해서 처리할 때 이 Status Code를 사용합니다. 서버가 동작하지 않을 수 있는 상황이기 때문에 이 Status Code가 응답되었을 때 어떤 이유 때문에 이 Code가 응답되었는 지 잘 살펴봐야 합니다.

  • 상황 1 : 데이터베이스 오류
  • 상황 2 : 예외처리하지 않은 오류 발생
profile
꾸준함을 만들고 싶어요

0개의 댓글