본문 바로가기

TIL

[HTTP response status codes] Server error responses

Next.js에서 백엔드 코드를 짜던 중 status codes에 대해 자세히 알아보고 싶어서 정리하는 글입니다.

 

제일 먼저 다뤄 볼 부분은 서버 오류 응답 코드입니다. 이 코드를 통해 발생한 에러를 로깅하고, 클라이언트에게 적절한 500 오류 메시지를 반환했습니다.

 

  • 500 Internal Server Error: 서버에서 예기치 못한 상황이 발생하여 요청을 처리할 수 없습니다.
  • 501 Not Implemented: 서버가 요청된 메서드를 지원하지 않습니다. 서버가 반드시 지원해야 하는 메서드는 GET과 HEAD입니다.
  • 502 Bad Gateway: 서버가 게이트웨이 역할을 하면서, 잘못된 응답을 받아 요청을 처리할 수 없습니다.
  • 503 Service Unavailable: 서버가 요청을 처리할 준비가 되어 있지 않습니다. 일반적으로 서버가 유지 보수 중이거나 과부하 상태일 때 발생하며, 일시적인 문제로 간주됩니다. 응답과 함께 사용자가 문제를 이해할 수 있는 페이지가 전송되어야 합니다.
  • 504 Gateway Timeout: 서버가 게이트웨이 역할을 하는 동안, 필요한 응답을 제때 받지 못해 요청을 처리할 수 없습니다.
  • 505 HTTP Version Not Supported: 요청에서 사용된 HTTP 버전이 서버에서 지원되지 않습니다.
  • 506 Variant Also Negotiates: 서버의 내부 구성 오류로 인해 리소스가 투명한 콘텐츠 협상 과정에 참여하고, 이를 통해 최종 응답을 제공할 수 없습니다.
  • 507 Insufficient Storage (WebDAV): 서버가 요청을 완료하는 데 필요한 데이터를 저장할 수 없기 때문에 요청을 처리할 수 없습니다.
  • 508 Loop Detected (WebDAV): 서버가 요청을 처리하는 동안 무한 루프가 감지되었습니다.
  • 510 Not Extended: 서버가 요청을 처리하기 위해 추가적인 확장이 필요합니다.
  • 511 Network Authentication Required: 클라이언트가 네트워크에 접근하기 위해 인증이 필요함을 나타냅니다.

 

자주 사용하는 상태 코드

자주 사용하는 상태 코드

  1. 500 Internal Server Error: 서버 내부에서 예기치 못한 문제가 발생했을 때 사용합니다. 주로 서버 측의 오류를 로그하고, 클라이언트에게 적절한 오류 메시지를 전달할 때 자주 사용됩니다.
  2. 502 Bad Gateway: 서버가 다른 서버로부터 잘못된 응답을 받았을 때 사용합니다. 주로 게이트웨이 역할을 하는 서버에서의 문제를 감지하는 데 유용합니다.
  3. 503 Service Unavailable: 서버가 일시적으로 요청을 처리할 수 없을 때 사용합니다. 시스템 과부하나 유지 보수 중일 때 자주 발생합니다.
catch (error) {
    console.log("[BILLBOARD_DELETE]", error);
    return new NextResponse("서버 오류", { status: 500 });
  }

 

이 코드를 통해 발생한 에러를 로깅하고, 클라이언트에게 적절한 500 오류 메시지를 반환했습니다.

 

느낀 점

서버에서 문제가 발생했을 때, 적절한 피드백을 클라이언트에게 전달하는 것이 중요하다는 것을 알게 되었습니다.

특히, 502 Bad Gateway503 Service Unavailable 같은 오류 코드는 시스템 상태를 모니터링하고, 요청 처리 흐름을 명확히 이해하는 데 중요한 역할을 한다는 것을 느꼈습니다. 이러한 오류 코드는 시스템의 장애나 과부하를 조기에 감지하고 대응할 수 있는 기회를 제공하며, 서버의 안정성을 유지하는 데 도움이 됩니다.