[API] 400 Bad Request
2025. 1. 10. 23:22ㆍiOS
반응형
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. 서버의 데이터 유효성 검사 실패
- 클라이언트에서 보낸 데이터가 서버의 유효성 검사 규칙을 통과하지 못했을 경우.
- 예) 필드 길이 초과, 이메일 형식이 올바르지 않음 등.
확인 방법:
- 서버에서 반환한 응답 본문(에러 메시지)을 확인.
- 서버 측의 유효성 검사 로직 검토.
디버깅 방법
- 서버 로그 확인
- 서버에서 어떤 요청을 받고, 어떤 에러를 반환했는지 확인.
- Postman/cURL 테스트
- API 요청을 독립적으로 재현하여 문제 확인.
- 클라이언트 코드 검토
- 요청을 만드는 로직과 데이터를 점검.
- API 문서 다시 확인
- 엔드포인트, 요청 데이터, 헤더, 인증 관련 내용을 점검.
해결 방법
- 잘못된 데이터 전송: 요청 데이터를 API 문서에 맞게 수정.
- URL 오류: 서버에 요청한 URL이 올바른지 확인 후 수정.
- 헤더 문제: 필요한 헤더 추가.
- 파라미터 오류: 클라이언트에서 올바른 값 전달.
반응형
'iOS' 카테고리의 다른 글
[RxSwift] BehaviorSubject (0) | 2025.01.10 |
---|---|
[iOS] Keychain과 UserDefaults 병행 (0) | 2025.01.10 |
[iOS] Method cannot be marked @objc because the type of the parameter 5 cannot be represented in Objective-C (0) | 2025.01.10 |
[API] UnexpectedRollbackException 500 Error (1) | 2025.01.10 |
[RxSwift] zip, combineLate (1) | 2025.01.09 |