[TIL] HTTP Status Code 정리

·2023년 6월 10일
0

TIL

목록 보기
4/7
post-thumbnail

Restful API 설계하면서 가끔 헷갈려서 제대로 정리해보고자 작성한다. 주로 사용되는 100, 200, 201, 400, 403, 404, 500 정도만 알고있었는데 찾아보니 굉장히 종류가 많다😶😶
아마 주로 이용되는것만 명확하게 알아도 되지 않을까 ..?
그래서 자주 사용하는 것 + 개발하면서 써본 것들로만 정리해보자.


✔️HTTP Status Code

상태코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지로 이루어진다. 이중 45로 시작하는 상태코드는 에러가 발생했다는 것이므로 관리자의 확인이 필요한 사항이다.

1xx (정보): 요청을 받았으며 프로세스를 계속 진행
2xx (성공): 요청을 성공적으로 받았음
3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치 필요
4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청 처리 불가능
5xx (서버 오류): 서버가 유효한 요청에 대한 충족 실패

✏️1XX : Information responses

상태코드가 '1XX'인 경우: 서버가 요청 받았으며, 클라이언트는 계속 작업을 진행하라는 뜻
해당 코드는 HTTP 1.0에서 지원 안됨.

100 Continue

진행중임을 의미
현재까지의 진행상태에 문제 없으며, 클라이언트가 계속 요청을 하거나 이미 요청 완료한 경우에는 무시해도 상관없음.


✏️2XX : Successful responses

200 OK

요청이 성공적으로 됨

  • GET: 리소스를 불러와서 메시지 바디에 전송됨
  • HEAD: 개체 헤더가 메시지 바디에 있음
  • PUT / POST: 수행 결과에 대한 리소스가 메시지 바디에 전송됨
  • TRACE: 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있음

201 Created

요청이 성공적이며, 그 결과로 새로운 리소스가 생성됨
응답은 일반적으로 POST 요청 또는 일부 PUT 요청으로 따라옴.

  • 글 등록 성공
  • 회원가입 성공

204 No Content

요청에 대해서 보낼 수 있는 콘텐츠는 없지만, 헤더는 의미있을 수 있음
사용자-에이전트는 리소스가 캐시된 헤더를 새로운 것으로 업데이트 가능.


✏️4XX: Client error responses

400 Bad Request

잘못된 문법으로 인해 서버가 요청을 이해할 수 없음을 의미

  • 회원가입 시 올바르지 않은 형태의 아이디 및 비밀번호 입력
  • 필수로 요구하는 값을 누락했을 경우

401 Unauthorized

HTTP 표준에서는 "미승인(unauthorized)"를 명확히 하고 있지만, 의미상 이 응답은 "비인증(unauthenticated)"을 의미
클라이언트가 요청한 응답을 받기 위해선 반드시 스스로 인증해야함.

  • 로그인하지 않은 상태에서 로그인이 필요한 기능 접근

403 Forbidden

클라이언트가 콘텐츠에 접근할 권리를 갖고있지 않음
예를 들어 해당 클라이언트가 미승인이라서 서버가 거절을 위한 적절한 응답을 전송함. 401과 다른 점은 서버가 클라이언트가 누구인지 알 수 있다는 점.

  • 로그인했지만 다른 유저의 비밀번호를 변경하는 API 요청하는 경우

404 Not Found

서버가 요청받은 리소스를 찾을 수 없음
브라우저에서는 알려지지 않은 URL을 의미. 서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위해 해당 응답을 403 대신 보낼 수도 있음.

  • 존재하지 않는 글을 요청했을 때

405 Method Not Allowed

요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없음
예를 들어, 어떤 API에서 리소스를 삭제하는 것을 금지할 수 있음.

  • 어떤 리소스에 대해 수정/삭제를 막고 가져오기만 허용할 때

408 Request Timeout

요청을 한지 시간이 오래된 연결에 일부 서버가 전송
어떨때는 이전에 클라이언트로부터 어떠한 요청이 없었다 하더라도 보내지기도 함. 이것은 서버가 사용되지 않는 연결을 끊고 싶어한다는 것을 의미함.

409 Conflict

요청이 현재 서버의 상태와 충돌

  • 중복되는 정보로 회원가입 요청이 발생했을 때

413 Payload Too Large

Payload의 크기가 서버에서 정의한 한계보다 큰 경우
예를 들어, 파일 등을 전달받을 때 파일의 크기가 정의한 값보다 큰 경우 발생할 수 있음.

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

✏️5XX: Server error responses

500 Internal Server Error

서버가 처리 방법을 모르는 상황

  • 데이터베이스 오류
  • 예외처리하지 않은 오류 발생

참고자료

HTTP 공식사이트
자주 사용하는 HTTP

0개의 댓글