Home HTTP 상태코드
Post
Cancel

HTTP 상태코드

HTTP 상태코드

HTTP 상태코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로 5개의 클래스(분류)로 구분된다.

  • 1xx(정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx(성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx(리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx(클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx(서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

2xx

클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.

  • 200(성공): 서버가 요청을 제대로 처리함
  • 201(작성됨): 성공적으로 요청되었으며 서버가 새 리소스를 작성
  • 202(허용됨): 서버가 요청을 접수했지만 아직 처리하지 않음
    • 배치 처리 같은 곳에서 사용
  • 204(콘텐츠 없음): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않음
    • 예시: 웹 문서 편집기에서 save 버튼을 누렀을 경우, 결과로 아무 내용이 없어도 된다.

3xx

클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.

  • 300(여러 선택항목): 서버가 요청에 따라 여러 조치를 선택할 수 있음
  • 301(영구 이동): 요청한 페이지를 새 위치로 영구적으로 이동
    • 페이지가 영구적으로 변경된 경우, 301과 308은 검색 엔진 등에서도 변경 인지
    • 301은 리다이렉트 시 요청 메서드가 GET으로 변하고, 분문이 제거 될 수 있다, 308은 301과 기능은 같지만 처음 요청 그대로 요청을 보내고 본문을 유지한다.
  • 302(임시 이동): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용
    • 리다이렉트 시 요청 메서드가 GET으로 변하고, 본문이 제거 될 수 있음
    • 307은 302와 기능은 같지만 요청 메서드와 본문을 유지한다
  • 303(기타 위치 보기): 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시
    • 302와 기능이 같고 리다이렉트 시 요청 메서드가 GET으로 변경(302도 대부분 GET으로 변경된다)
  • 304(수정되지 않음): 마지막 요청 이후 요청한 페이지는 수정되지 않음
    • 캐시를 목적으로 사용
    • 클라이언트에게 리소스가 수정되지 않았음을 알려준다. 따라서 클라이언트는 로컬 PC에 저장된 캐시를 재사용 한다.
    • 304 응답은 응답에 메시지 바디를 포함하면 안된다.
    • 조건부 GET, HEAD 요청 시 사용

4xx

클라이언트에 오류가 있음을 나타낸다.

  • 400(잘못된 요청): 서버가 요청의 구문을 인식하지 못함
    • 요청 구문, 메시지 등의 오류
    • 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
  • 401(권한 없음): 인증이 필요함
    • 401 오류 발생 시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명
  • 403(Forbidden, 금지됨): 서버가 요청을 이해했지만 승인을 거부함
    • 주로 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
  • 404(Not Found, 찾을 수 없음): 서버가 요청한 페이지를 찾을 수 없음
    • 요청 리소스가 서버에 없거나 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기기 위해 사용

5xx

서버가 유효한 요청을 명백하게 수행하지 못함(서버 오류)

  • 500(내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없다
  • 503(서비스를 사용할 수 없음): 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
    • Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있음

참고

This post is licensed under CC BY 4.0 by the author.

HTTP 메서드

HTTP 헤더 개요

Comments powered by Disqus.