[API] 400 Bad Request

2025. 1. 10. 23:22iOS

반응형

HTTP 상태 코드 400 Bad Request는 클라이언트가 서버로 보낸 요청이 잘못되었음을 나타냅니다. 일반적으로 아래와 같은 원인으로 발생할 수 있습니다:


1. 잘못된 요청 데이터

  • 요청 본문이 서버에서 기대하는 형식(JSON, XML 등)과 일치하지 않거나, 필수 필드가 누락된 경우.
  • 예) { "username": "test" }를 기대했지만 { "user": "test" }로 보낸 경우.

확인 방법:

  • 요청 데이터(JSON, query parameters 등)를 서버 요구사항과 비교.
  • API 문서 확인 및 필요한 필드를 모두 포함했는지 점검.

2. 잘못된 URL 또는 엔드포인트

  • 요청 URL이 서버에서 정의한 엔드포인트와 다를 때.
  • 예) /api/v1/users 대신 /api/v1/usrs로 요청.

확인 방법:

  • 서버 로그에서 잘못된 URL 요청이 있었는지 확인.
  • 클라이언트에서 사용 중인 URL이 올바른지 검토.

3. 헤더 문제

  • 필수 헤더(예: Content-Type, Authorization)가 누락되거나 잘못된 값이 들어간 경우.
  • 예) Content-Type이 application/json이어야 하는데 text/plain으로 보낸 경우.

확인 방법:

  • 서버 API 문서에서 요구하는 헤더를 점검.
  • Postman 또는 cURL을 이용해 헤더를 포함한 요청 테스트.

4. 파라미터 오류

  • URL 쿼리 파라미터나 경로 파라미터가 잘못된 값으로 제공된 경우.
  • 예) GET /users?page=-1에서 page 값이 음수로 잘못된 경우.

확인 방법:

  • 서버 로그에서 파라미터를 확인.
  • 클라이언트에서 올바른 값을 전달했는지 확인.

5. 서버의 데이터 유효성 검사 실패

  • 클라이언트에서 보낸 데이터가 서버의 유효성 검사 규칙을 통과하지 못했을 경우.
  • 예) 필드 길이 초과, 이메일 형식이 올바르지 않음 등.

확인 방법:

  • 서버에서 반환한 응답 본문(에러 메시지)을 확인.
  • 서버 측의 유효성 검사 로직 검토.

디버깅 방법

  1. 서버 로그 확인
    • 서버에서 어떤 요청을 받고, 어떤 에러를 반환했는지 확인.
  2. Postman/cURL 테스트
    • API 요청을 독립적으로 재현하여 문제 확인.
  3. 클라이언트 코드 검토
    • 요청을 만드는 로직과 데이터를 점검.
  4. API 문서 다시 확인
    • 엔드포인트, 요청 데이터, 헤더, 인증 관련 내용을 점검.

해결 방법

  • 잘못된 데이터 전송: 요청 데이터를 API 문서에 맞게 수정.
  • URL 오류: 서버에 요청한 URL이 올바른지 확인 후 수정.
  • 헤더 문제: 필요한 헤더 추가.
  • 파라미터 오류: 클라이언트에서 올바른 값 전달.
반응형