Computer Science/HTTP

[HTTP] HTTP Status Code

s_y_130 2023. 3. 10. 21:57

HTTP 상태 코드란?


클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다.

 

HTTP 상태 코드 분류

상태 코드의 첫 번째 숫자에 따라 크게 5가지로 분류 됩니다.

  • 1xx (Informational) : 요청을 받았으며 작업을 계속한다
  • 2xx (Successful) : 클라이언트가 요청한 동작을 성공적으로 수신하여 이해했고 성공적으로 처리하였다.
  • 3xx (Redirection) : 요청을 완료하기 위해 추가 작업 조치가 필요하다
  • 4xx (Client Error) : 클라이언트의 요청에 문제가 있다.
  • 5xx (Server Error) : 서버가 유효한 요청의 수행을 실패했다.

 

HTTP 상태 코드 상세

자주 사용되는 HTTP 상태 코드 위주로 정리하였다.
모든 HTTP 상태 코드를 알고 싶다면, MDN이나 위키백과를 참고

 

 

2xx (Successful) : 성공

The action was successfully received, understood, and accepted
요청을 정상적으로 처리했음을 의미한다.

상태 코드 요약 설명
200 OK 요청이 성공적으로 수행되었음을 의미한다. 주로 GET 요청에 대한 응답 이다
201 Created 요청이 성공적으로 수행되었으며, 그 결과로 새로운 리소스가 생성됨을 의미한. 주로 POST 요청에 대한 응답 이다.

 

 

4xx (Client Error) : 요청 오류

The request contains bad syntax or cannot be fulfilled
클라이언트 오류(잘못된 문법 등)로 인해 서버가 요청을 처리할 수 없음 을 의미한다.

상태 코드 요약 설명
400 Bad Request 데이터의 형식이 올바르지 않는 등 서버가 요청을 이해할 수 없음 (ex. 올바르지 않은 형식의 데이터 입력 등)
401 Unauthorized 인증되지 않은 상태에서 인증이 필요한 리소스에 접근함 (ex. 로그인 전에 사용자 정보 요청 등)
403 Forbidden 인증된 상태에서 클라이언트가 콘텐츠에 접근할 권한을 가지고 있지 않음을 의미한다.
401과 다른 점은 서버가 클라이언트가 누구인지 알고 있다는 것이다. 보통 특정 IP나 국가가 차단되어 있는 사이트에 접속을 시도한 경우 사용된.(ex. 일반 유저가 관리자 메뉴 접근 등)

404 Not Found 요청한 route가 없음. 찾는 리소스가 없음 (ex. www.naver.com/nossi 등 존재하지 않는 route에 요청 등)
인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 403 대신 이 응답을 전송하기도 한다.

 

 

 

5xx (Server Error) : 서버 오류

The server failed to fulfill an apparently valid request
서버 오류로 인해 서버가 정상 요청을 처리하지 못함을 의미한다.

상태 코드 요약 설명
500 Internal Server Error 서버에 오류가 발생하여 응답할 수 없음을 의미한다. 서버에 오류가 발생했으나 처리 방법을 알 수 없을 경우의 응답이다.
502 Bad Gateway 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미한다. 서버의 부모 서버에서 오류가 발생한 경우의 응답이다. 보통 서버에 접속하는 사용자가 많아 과부하될 때 발생한다.

 

 

 

 

 

 


참고