2009-09-01 21 views
31

Jaki kod statusu HTTP powinienem zwrócić, gdy klient wysyła nieprawidłowe dane (np. Ciąg znaków, gdy oczekiwano liczby całkowitej)?Kod stanu HTTP dla niepoprawnych danych

Używam 400 nieprawidłowych żądań, ale podczas czytania dokumentów HTTP wydaje się, że bardziej pasują do błędów protokołu HTTP.

Chciałbym użyć kodu statusu, aby klienci Flash i AJAX mogli odróżnić sukces, złe dane i błąd serwera bez konieczności analizowania odpowiedzi.

Odpowiedz

46

To jest dokładnie to, za co odpowiada 400. Tak, jest używany do złego użycia protokołu HTTP, ale nie jest to wyłącznie do tego celu.

+1

Na pytanie OP, co jeśli klient wystawi żądanie HTTP z 'liczbą całkowitą' zgodnie z oczekiwaniami. Załóżmy jednak, że ta liczba całkowita reprezentuje "identyfikator" użytkownika. Jeśli serwer nie może znaleźć tego użytkownika, należy również zwrócić '400'? –

+7

Na 404 byłby najlepszy w tym przypadku @KevinMeredith – DasDave

5

Naprawdę byłbym bardziej skłonny do pułapkowania złych danych z powrotem w przeglądarce, gdy klient trafi przycisk przesyłania.

Jeśli nie, to chciałbym wrócić 400 bo jak średnia mówi:

Żądanie nie mogło być zrozumiane przez serwer z powodu składni zniekształconych. Klient NIE POWINIEN powtarzać żądania bez modyfikacji.

+3

Powinieneś prawdopodobnie zrobić oba. Nie ma gwarancji, że interfejs API jest używany przez przeglądarkę. :) – weberc2

Powiązane problemy