HTTP 상태코드 정의

hoon·2023년 2월 14일
0

토이 프로젝트를 설계하면서 클라이언트의 요청에 따른 응답을 사전에 정의할 필요가 있다는 생각이 들어서 HTTP 상태코드에 대해서 공부하고 프로젝트를 구현하기 위해서 필요한 HTTP 상태코드는 어떤 것들이 있는지 알아 보았다. 우선 HTTP 상태코드에 대해서 알아보자

HTTP 상태코드란?

클라이언트가 보낸 요청의 처리 상태를 알려주는 기능이다.

  • 1xx (Informational) : 요청이 수신되어 처리중 (잘 사용하지 않는다.)
  • 2xx (Successful) : 요청 정상 처리
  • 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요
  • 4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함

HTTP 상태코드의 종류는 매우 다양하지만 용도가 겹치는 상태코드도 있으며 자주 사용하지 않는 상태코드 역시 존재하기 때문에 이번 프로젝트에서 사용할 핵심 상태코드만 선별해 보았다.

프로젝트에서 사용할 HTTP 상태코드

  • 200(OK)
    • 클라이언트의 요청을 성공적으로 처리
    • ex) 요청구문, 메시지 오류 등 ..
    • 클라이언트는 요청 내용을 다시 검토하고 보내야함!
    • 스펙이 맞지 않으면 400오류로 튕겨주자!
  • 302 (Found)
    • 일시적인 리다이렉션으로 리소스의 URI가 일시적으로 변경된다.
    • 요청된 페이지가 일시적으로 새 URL로 옮겨진 상태
    • 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
    • ex) POST로 주문후에 새로고침으로 인한 중복 주문을 방지하기 위해 POST로 주문후에 주문 결과 화면을 GET 메서드로 리다이렉트
  • 400(Bad Request)
    • 클라이언트의 요청이 유효하지 않아 더이상 작업을 진행하지 않음
  • 401 (Unauthorized)
    • 클라이언트가 해당 리소스에 대한 인증이 필요함
      • 인증(Authentication) : 본인이 누구인지 확인 ex) 로그인
      • 인가(Authorization): 권한부여 ex) admin 권한처럼 특정 리소스에 접근할 수 있는 권한
    • header와 함께 인증 방법을 설명해 주어야 한다.
  • 403(Forbidden)
    • 서버가 요청을 이해했지만 승인을 거부함
    • 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
    • ex) admin등급이 아닌 사용자가 로그인은 했지만, admin 등급의 리소스에 접근하는 경우
  • 404(Not Found)
    • 요청 리소스를 찾을 수 없음
    • ex) 클라이언트가 URL을 잘못 입력하였거나 요청 리소스나 페이지가 서버에 없는 경우
  • 500(Internal Server Error)
    • 서버 문제로 오류 발생

결론

HTTP 상태코드에 대한 내용을 정리하지 않고 코드를 짜려고 했다면 클라이언트의 요청에대한 적절한 서버의 응답을 생각하지 못했을 것이다. 선별한 HTTP 상태코드를 바탕으로 API 명세 작성을 해보면 좋을것 같다.

참고자료

https://sanghaklee.tistory.com/61

profile
프론트엔드 학습 과정을 기록하고 있습니다.

0개의 댓글

관련 채용 정보