시행착오/오류해결

[HTTP] 상태 코드 정리

JiWonSon 2021. 1. 27. 14:36

* 상태코드 (status code) 란?

서버가 클라이언트 요청을 처리하고 난 후 상태에 따라 반환하는 코드입니다.

++ 개발자 도구에서 network 탭을 열면 status code를 볼 수 있기도 하다.

 

* 코드의 종류

  • 1XX : 조건부 응답
  • 2XX : 성공
  • 3XX : 완전한 처리를 위해 추가적 동작이 필요
  • 4XX : 클라이언트 에러 (대부분 클라이언트 혹은 프론트엔드에서 요청이 잘못된 경우)
  • 5XX : 서버에러 (대부분 백엔드, 서버 부하, DB처리, 서버 예외처리 발생하는 경우)

* 1XX : 조건부 응답

클라이언트가 데이터를 일부만 포함해 보내어 서버가 데이터를 더 보내라고 하는 응답 코드입니다.

 

• 100 : 클라이언트가 계속해서 요청하거나 요청을 완료한 경우 무시해도 되는 것을 알려 줍니다. (Continue)

• 101 : 클라이언트가 보낸 Upgrade 요청 해더에 대한 응답, 서버에서 프로토콜 변경할것임을 알림 (Switching Protocols)

• 102 : 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음 (Processing)

• 103 : (Early Hints)

 

* 2XX : 성공

서버가 클라이언트로부터의 요청을 성공적으로 처리한 후 반환하는 응답 코드입니다.

 

200 : 서버가 클라이언트의 요청을 성공적으로 처리, 웹 페이지에서는 페이지 요청이 정상적으로 완료 (Ok)

• 201 : 서버가 요청된 클라이언트의 정보를 정상적으로 저장 (Created)

• 202 : 요청 접수만 되고 아직 처리되지 않은 상태, 서버는 현재의 상태를 보여주는 페이지를 제공해 주어야 함 (Accepted)

• 203 : 정보를 신뢰할 수 없는 경우 (Non-authoritative Information)

204 : 클라이언트로 반환되는 데이터가 없을 때, 즉, 빈 콘텐츠 제공 (No contetnt)

• 205 : 서버는 요청을 성공적으로 처리, 반환되는 콘텐츠가 비어 있을 경우 클라이언트로부터 재설정시키는 코드 (Reset Content)

• 206 : 일부 콘텐츠 (Partial Content)

• 207 : 다중 상태 (Multi-Status)

• 208 : 이미 보고됨 (Already Reported)

• 226 : 서버가 GET 요청에 대한 리소스의 의무를 다 했고, 응답이 하나 이상의 인스턴스 조작이 현재 적용됨을 알림 (IM Used)

 

* 3XX : 완전한 처리를 위해 추가적 동작이 필요

클라이언트가 요청을 완료하기 위해 작업이 남아있는 코드입니다. 보통 새로고침을 한 경우 반환하는 응답 코드입니다.

 

• 300 : 여러 선택 항목 (Multiple Choices)

301 : 영구 이동 (Moved Permanently)

302 : 임시 이동 (Found)

• 303 : 기타 위치 보기 (See Other)

• 304 : 수정되지 않음 (Not Modified)

• 305 : 프록시 사용 (Use Proxy)

• 306 : 코드는 더이상 사용되지 않으며, 추후 사용을 위해 예약 (Unused)

307 : 임시 새로고침 (Temporary Redirect)

• 308 : 영구 새로고침 (Permanent Redirect)

 

* 4XX : 클라이언트 에러

클라이언트의 요청이 잘못됐을 때 반환하는 응답 코드입니다. 즉, 문제 발생 원이이 클라이언트에 있습니다.

 

400 : 잘못 요청 (Bad Request)

• 401 : 권한 없음, 예를 들면, 로그인 페이지가 필요한 페이지를 로그인 없이 접속하려는 경우 반환되는 코드 (인증 실패) (Unauthorized)

• 402 : 결제 필요 (Payment Required)

• 403 : 금지됨, 로그인 된 사용자 관리자 페이지를 접속하려고 시도하는데 관리자가 아닐 경우 반환되는 코드 (인가) (Forbidden)

• 404 : 찾을 수 없음, 존재하지 않는 URL을 요청 페이지를 접속할 수 없을때 반환되는 코드 (Not Found)

• 405: 잘못된 요청 메소드 사용 (Method Not Allowed)

• 406: 허용되지 않음 (Not Acceptable)

• 407 : 프록시 인증 필요 (Proxy Authentication Required)

• 408 : 요청 시간 초과 (Request Timeout)

• 409 : 충돌 (Conflict)

• 410 : 사라짐 (Gone)

• 411 : 길이 필요 (Length Required)

• 412 : 사전 조건 실패 (Precondition Failed)

• 413 : 요청 속성이 너무 큼 (Payload Too Large)

• 414 : 사전 조건 실패 (Request-URI Too Long)

• 415 : 지원되지 않는 미디어 유형 (Unsupported Media Type)

• 416 : 처리할 수 없는 요청 범위 (Requested Range Not Satisfiable)

• 417 : 예상 실패 (Expextation Failed)

• 418 : 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다. (I'm a teapot)

• 420 : (Enhance Your Calm)

• 421 : 서버로 유도된 욧청은 응답을 생성할 수 없습니다. (Misdirected Request)

• 422 : 처리할 수 없는 엔티티 (Unprocessable Entity)

• 423 : 잠김 (Locked)

• 424 : 메소드 실패 (Failed Dependency)

• 425 : 정렬되지 않은 컬렉션 (Reserved for WebDAV)

• 426 : 업그레이드 필요 (Upgrade Required)

• 428 : 전제조건 필요 (Precondition Required)

• 429 : 너무 많은 요청 (Too Many Requests)

• 431 : 요청 헤더 필드가 너무 큼 (Request Header Fields Too Large)

 444 : 응답 없음 (No Response)

 449 : 다시 시도 (Retry With)

 450 : 법적 문제로 이용 불가 (Blocked by Windows Parental Controls)

 451 : 리다이렉션 (Unavailable For Legal Reasons)

 494 : 요청 헤더가 너무 

 495 : cert 오류 (cert = 인증키)

 496 : cert 없음 (cert = 인증키)

 497 : http to https

 499 : 클라이언트가 요청을 닫음 (Client Closed Request)

* 5XX : 서버에러

서버의 설정, 코드 등의 문제로 오류가 났을 때 반환되는 코드입니다.

 

 500 : 내부 서버 오류, 보통 서버 코드의 문제  반환되는 응답 코드 (Internal Server Error)

 501 : 구현되지 않음 (Not Implemented)

 502 : 불량 게이트웨이 ( 서버를 게이트웨이라고 부르기도 ) (Bad Gateway)

 503 : 서비스를 사용할  없음 (Service Unavailable)

 504 : 게이트웨이 시간 초과 (Gateway Timeout)

 505 : http 버전이 지원이되지 않음,  경우 https 사용 (HTTP Version Not Supported)

 506 : 서버에 내부 구성 오류가 있다. 즉, 요청을 위한 투명한 콘텐츠 협상이 순환 참조로 이어진다. (Variant Also Negotiates)

 507 : 용량 부족 (Insufficient Storage)

 508 : 루프 감지 (Loop Detected))

 509 : 대역폭 제한 초과 (Bandwidth Limit Exceeded)

 510 : 확장되지 않음 (Not Extended)

 511 : 네트워크 인증 필요 (Network Authentication Required)

 598 : 네트워크 읽기 시간 초과 오류

 599 : 네트워크 연결 시간 초과 오류 (Network Connect Timeout Error)

 

 

<참고자료>

velog.io/@hwang-eunji/%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C-status-code-%EC%A0%95%EB%A6%AC

 

상태코드 (status code) 정리

개발자 도구를 열고 network 탭을 열고 파일을 클릭해보면 header-general 옵션 아래에서 status code를 볼수 있다.HTTP 통신을 하게 되면 응답 상태를 나타내는 코드로 100~500번때의 번호를 갖고 있다. 그!

velog.io

developer.mozilla.org/ko/docs/Web/HTTP/Status

'시행착오 > 오류해결' 카테고리의 다른 글

[tomcat] PUT, DELETE 파싱 오류  (0) 2022.01.19
[Issue] log4j 취약점  (0) 2022.01.17