본문 바로가기
Study/Web

Web ) HTTP 응답에 따른 상태 코드

by JongIk 2022. 1. 15.
반응형

HTTP 상태 코드

모든 HTTP 응답 코드는 5개의 종류로 구분됩니다.
상태 코드의 첫 번째 숫자는 응답의 클래스를 정의합니다. 그러나 마지막 두 자리는 클래스나 분류 역할을 하지 않습니다.

첫 자리에 대한 5가지의 분류는 다음과 같습니다.

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

2xx (성공)

이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 의미합니다.

  • 200 : 서버가 요청을 제대로 처리했다는 뜻입니다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰입니다.
  • 201 : 성공적으로 요청되었으며 서버가 새 리소스를 작성했습니다.
  • 202 : 서버가 요청을 접수했지만 아직 처리는 하지 않은 상태입니다.
  • 203 : 서버가 요청을 성공적으로 처리했지만, 다른 소스에서 수신된 정보를 제공하고 있습니다.
  • 204 : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않습니다.
  • 205 : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않습니다. 204 응답과는 다르게 205 는 요청자가 문서 보기를 재설정할 것을 요구합니다. ( ex) 새 입력을 위한 양식 비우기 )
  • 206 : 서버가 GET 요청의 일부분만 성공적으로 처리했습니다.
  • 207 : 다중상태
  • 208 : 이미 보고됨

3xx (리다이렉션 완료)

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

  • 300 : 서버가 요청에 따라 여러 조치를 선택할 수 있습니다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요첮아가 선택할 수 있는 작업 목록을 제공합니다.
  • 301 : 요청한 페이지를 새 위치로 영구적으로 이동했습니다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달됩니다.
  • 302 : 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 합니다.
  • 303 : 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시합니다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달합니다.
  • 304 : 마지막 요청 이후 요청한 페이지는 수정되지 않았습니다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않습니다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답을 표시하도록 서버를 구성해야 합니다.
  • 305 : 요청자는 프록시를 사용하여 요청한 페이지만 엑세스할 수 있습니다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 합니다.
  • 307 : 임시 리다이렉션, 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 합니다.
  • 308 : 영구 리다이렉션

4xx (요청 오류) 프론트엔드 잘못

4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타냅니다.

  • 400 : 서버가 요청의 구문을 인식하지 못했습니다.
  • 401 : 이 요청은 인증이 필요합니다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있습니다.
    상태 코드 이름이 권한 없음 (Unauthorized)으로 되어있지만 실제 뜻은 인증 안됨 (Unauthenticated)에 가깝습니다.
  • 402 : 이 요청을 결제가 필요합니다.
  • 403 : 서버가 요청을 거부하고 있습니다. ( 예 : 사용자가 리소스에 대한 필요 권한을 가지고 있지 않습니다.)
    401은 인증 실패, 403은 인가 실패라고 볼 수 있습니다.
  • 404 : 서버가 요청한 페이지를 찾을 수 없습니다.
    서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공합니다.
  • 405 : 요청에 지정된 방법을 사용할 수 없습니다.
    예를 들어 POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우에 이 형식의 응답코드가 나옵니다.
  • 406 : 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없습니다.
  • 407 : 이 상태 코드는 401 과 비슷하지만 요청자가 프록시를 사용하여 인증해야합니다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 합니다.
  • 408 : 서버의 요청 대기가 시간을 초과했습니다.
  • 409 : 서버가 요청을 수행하는 중에 충돌이 발생했습니다.
    서버는 응답할 때 충돌에 대한 정보를 포함해야 합니다.
  • 410 : 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시합니다.
  • 411 : 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않습니다.
  • 412 : 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않습니다.
  • 413 : 요청이 너무 커서 서버가 처리할 수 없습니다.
  • 414 : 요청 URI 가 너무 길어 서버가 처리할 수 없습니다.
  • 415 : 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
  • 416 : 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
  • 417 : 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
  • 444 : 응답이 없습니다 (Nginx)
  • 449 : 다시 시도하세요 (Microsoft)
  • 450 : window 자녀보호에 의해 차단되었습니다. (Microsoft)
  • 451 : 법적인 이유로 이용이 불가합니다.
  • 497 : HTTP to HTTPS (Nginx)

5xx (서버 오류) 백엔드 잘못

서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다.

  • 500 : 서버에 오류가 발생해 요청을 수행할 수 없습니다.
  • 501 : 서버에 요청을 수행할 수 있는 기능이 없습니다.
    예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 코드가 표시됩니다.
  • 502 : 서버가 게이트웨이나 프록시 역할을 하고 있거나 업스트림 서버에서 잘못된 응답을 받았습니다.
  • 503 : 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없습니다. 이는 대개 일시적인 상태입니다.
  • 504 : 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했습니다.
  • 505 : 서버가 요청에 사용된 HTTP 프로토콜 버전을 사용하지 않습니다.
  • 520 : 알 수 없는 에러입니다.

참고문서 : 위키백과-HTTP상태코드

반응형

댓글