Home 상태 코드 Status Code
Post
X

상태 코드 Status Code

Statue Code

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다.

상태 코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지 제공됩니다.

첫번째 자리가 4와 5인 경우는 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야 하는 정보입니다.

자주 사용되는 상태 코드 위주로 알아보겠습니다.

1xx (Information responses)

서버가 요청을 받았으며, 서버에 연결된 클라이언트는 작업을 계속 진행하라는 의미입니다.

해당 코드는 최근에는 1xx 상태코드를 거의 사용하지 않습니다.


2xx (Successful responses)

요청을 성공적으로 받았다는 의미입니다.

  • 200 : OK

    요청이 성공적으로 되었습니다.

  • 201 : Created

    요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.

    일반적으로 POST 요청 또는 일부 PUT 요청 이후에 따라옵니다.

  • 202 : Accepted

    요청을 수신하였지만, 그에 응하여 행동할 수 없습니다.

    요청 처리에 대한 결과를 이후에 HTTP로 비동기 응답을 보내는 것에 대해서 명확하게 명시하지 않습니다.

    다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어졌습니다.

  • 204 : No Content

    요청을 성공적으로 수행했지만 응답 페이로드 본문에 보낼 데이터가 없습니다.

    리소스의 삭제가 정상적으로 처리되었을 때 사용할 수 있습니다.


3xx (Redirection)

요청 완료를 위해 추가 작업 조치가 필요하다는 의미입니다.

기본적으로 웹 브라우저는 3xx 응답 결과에 Location 헤더가 있으면 해당 Location 위치로 자동 이동합니다.

영구 리다이렉션
특정 리소스의 URL이 영구적으로 이동합니다.
  • 301 : Moved Permanetly

    요청한 리소스의 URI가 변경되었음을 의미합니다.

  • 308 : Permanent Redirect

    301과 동일하지만 처음 받았던 요청 방식(get/post 등)을 그대로 유지합니다.

일시 리다이렉션
일시적인 변경으로, 실무에서 많이 사용합니다.

쇼핑몰에서 주문을 완료하면 주문 내역 화면으로 이동되는 경우

만약 리다이렉션을 하지 않고 주문 완료 페이지에 머무르다가 사용자가 새로고침을 하게된다면 중복 결제가 일어날 수 있습니다.

PRG(post-redirect-get) 순으로 진행되어 GET 요청 결과 하면을 리턴, 중복 주문을 방지할 수 있습니다.

  • 302 : Found

    리다이렉트 요청 메서드가 GET 으로 변하고 본문이 제거될 수 있습니다.

  • 307 : Temporary Redirect

    클라이언트가 요청한 리소스가 다른 URI에 있으며 이전 요청과 동일한 메서드를 사용해서 요청해야 할 때 서버가 클라이언트에 요청을 직접 보냅니다.

    기존의 요청 메서드(GET/POST 등)는 변경되면 안되며, 본문 또한 유지되어야합니다.

  • 303 : See other

    302와 동일한 기능이지만, 명확하게 GET으로 변경해서 리다이렉션합니다.

특수 리다이렉션
결과 대신 캐시를 사용합니다.
  • 304 : Not Modified

    캐시를 목적으로 사용합니다.

    클라이언트에게 리소스가 수정되지 않았음을 알려줍니다.

    즉, 클라이언트는 로컬PC에 저장된 캐시를 재사용 합니다.


4xx (Client)

  • 400 : Bad Reqeust

    가장 많이 사용되는 4xx 에러로 요청 구문 또는 메시지 등의 오류가 있을 때 사용합니다.

  • 401 : Unauthorized

    Client가 해당 리소스에 대한 인증이 필요할 때 사용합니다.

    로그인이 필요한 환경에 비로그인으로 접근했을 경우 발생시킬 수 있습니다.

    응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명해서 보낼 수 있다.

  • 403 : Forbidden

    서버가 요청을 이해 했지만 승인을 거부하는 경우 발생시킬 수 있습니다.

    주로 인증은 완료되었지만, 접근 권한이 불충분한 경우로 예를들어 Admin등급이 아닌 사용자가 인증은 완료했지만, Admin 등급 이상 접근 가능한 리소스에 접근했을 경우 발생합니다.

  • 404 : Not Found

    비 개발자도 알고있는 404 Error.

    대부분 요청 리소스가 없을 때 사용합니다.

5XX (Server)

5XX 에러의 경우 정말 서버에 문제가 있을 경우에만 사용해야 하며, 개발자가 직접 해당 에러들을 리턴하는 경우는 없어야 합니다.

  • 500 : Internal Server Error

    웹 서버에 문제가 있을 때 발생하는 에러로, 서버에 발생하는 에러의 원인을 정확히 파악하지 못한 경우(애매할 경우) 500으로 처리합니다.

  • 503 : Service Unavailable

    서버가 요청을 처리할 준비가 되지 않았을때 사용합니다.

    서비스 점검(유지/보수)시 일시적으로 서버의 작동을 중단시킬 때 사용하며 Retry-After : 503(Server Unavailable) 과 함께 사용할 수 있다.


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.