반응형
어떤 API가 파라미터의 유효성을 검사한 후 유효하지 않을 경우 404 (NotFound)를 던지는 것을 보고 찾아보게 되었다.
if (mode.ToLower() == "pay")
{
isPay = true;
}
else if (mode.ToLower() == "free")
{
isPay = false;
}
else
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
//...
필요한 파라메터를 다 전달했지만 하나이상의 파라미터가(위 코드에선 mode)
유효하지 않아 정상적인 동작을 수행할 수 없는경우 404 (NotFound)를 던지는것이 맞는가?
404 Not Found : 요청받은 리소스를 찾을 수 없는 경우 사용. (브라우저에서는 알려지지 않은 url을 의미)
400 Bad Request : 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없는 경우 사용.
위 예시의 경우 리소스 자체를 찾을 수 없는 경우가 아니고
리소스는 찾았으나 일부 파라미터가 유효하지 않아 작업을 처리할 수 없는 케이스이므로
404 (Not Found) 보단 400 (Bad Request)가 좀 더 적절하겠다.
반응형