HTTP 상태 코드와 서버 에러에 대해

oversleep·2025년 2월 8일
0

Web

목록 보기
1/11
post-thumbnail

성공 상태 코드 (2XX)

200 OK

  • 가장 일반적인 성공 상태
  • 요청이 성공적으로 처리됨
  • GET 요청 성공시 주로 사용

201 Created

  • 새로운 리소스 생성 성공
  • POST 요청 성공시 주로 사용
  • 생성된 리소스의 URI를 응답에 포함

204 No Content

  • 요청은 성공했지만 응답 본문 없음
  • DELETE 요청 성공시 주로 사용

클라이언트 에러 (4XX)

400 Bad Request

  • 잘못된 요청 구문이나 형식
  • JSON 형식 오류
  • 필수 파라미터 누락
{
  "error": "Invalid request format",
  "message": "Name field is required"
}

401 Unauthorized

  • 인증이 필요한 리소스
  • 로그인이 필요한 경우
  • 토큰이 만료된 경우
{
  "error": "Authentication required",
  "message": "Please login first"
}

403 Forbidden

  • 권한이 없는 리소스 접근
  • 인증은 됐지만 권한 부족
{
  "error": "Access denied",
  "message": "You don't have permission"
}

404 Not Found

  • 요청한 리소스가 없음
  • 잘못된 URL 접근
{
  "error": "Resource not found",
  "message": "The requested URL was not found"
}

서버 에러 (5XX)

500 Internal Server Error

  • 서버 내부 오류
  • 데이터베이스 연결 실패
  • 예상치 못한 서버 오류
{
  "error": "Internal server error",
  "message": "Something went wrong"
}

502 Bad Gateway

  • 게이트웨이/프록시 서버 오류
  • 서버 간 통신 실패

503 Service Unavailable

  • 서버가 일시적으로 응답 불가
  • 서버 과부하나 점검 중

🔹 에러 처리 시 주의사항

  1. 명확한 에러 메시지

    • 에러의 원인을 명확히 설명
    • 해결 방법 제시 (가능한 경우)
    • 사용자가 이해하기 쉬운 언어 사용
  2. 보안 고려

    • 민감한 정보는 에러 메시지에 포함하지 않기
    • 스택 트레이스 노출 주의
    • 데이터베이스 에러 메시지 숨기기
  3. 로깅

    • 중요 에러는 반드시 로그 기록
    • 에러 발생 시간, 컨텍스트 포함
    • 디버깅에 필요한 정보 저장
  4. 사용자 경험

    • 친절한 에러 메시지
    • 적절한 대안 제시
    • 필요시 지원팀 연락처 제공
profile
궁금한 것, 했던 것, 시행착오 그리고 기억하고 싶은 것들을 기록합니다.

0개의 댓글