Przeczytaj specyfikację HTTP dla każdego kodu odpowiedzi, aby uzyskać informacje o tym, co zwrócić w treści odpowiedzi. 4xx, na przykład, mówi "Z wyjątkiem sytuacji, gdy odpowiada na żądanie HEAD, serwer POWINIEN zawierać reprezentację zawierającą wyjaśnienie sytuacji błędu i to, czy jest to tymczasowy czy stały warunek."
Najważniejszą kwestią, o której należy pamiętać, jest to, że kody odpowiedzi HTTP mają być jednolite, a zatem mają dużo więcej wspólnego z promowaniem interoperacyjności niż dostarczaniem szczegółowych potrzeb poszczególnych aplikacji. Użyj treści odpowiedzi, a nie kodu, aby uwzględnić szczegółowe szczegóły w formacie oczekiwanym od klientów.
1 pola złożone w niewłaściwy sposób (parametry URL vs ciała) lub brakujących pól
Return "404 Not Found". Parametry zapytania są częścią identyfikatora URI i służą do identyfikacji zasobu./foo/bar?a=1&b=2
identyfikuje inny zasób niż foo/bar
. Jeśli zasób nie istnieje, zwróć 404. Nie ma znaczenia, że ta sama logika w twoim kodzie jest używana do obsługi dowolnych parametrów dla tej samej ścieżki: te szczegóły są celowo ukryte za jednolitym interfejsem. Aby uzyskać więcej informacji, patrz the URI spec.
2 pola uzyskiwanie nieprawidłowych wartości (string zamiast liczb, datownika w przyszłości)
400 jest najlepiej tutaj, chyba że zasób jest w stanie w sposób sprzeczny z wnioskiem, że użytkownik może zasadnie w stanie rozwiązać (a następnie ponownie zgłosić żądanie), w którym to przypadku zwrot 409.
3 niektóre znaki, takie jak?,/przerwa rzeczy w adresie URL Parametry
Jeśli takie złamanie jest spowodowane niepoprawnym działaniem serwera z zastrzeżonymi znakami w komponencie zapytania, zwróć 500. Jeśli klient przesłał zniekształcony identyfikator URI żądania, zwróć 400. Jeśli identyfikator URI wskazuje zasób, którego twój serwer nie obsługuje, zwróć 404.
4 Aktualnie awarie: nieprawidłowy poświadczeń powtarzania już wykonanej akcję przy
nieprawidłowe poświadczenia powinno skutkować „401.”. Powtórzenie czynności, która została już wykonana, powinno skutkować 200 OK (lub przekierowaniem itp.), Jeśli metoda żądania to idempotent (GET, HEAD, PUT, DELETE). W przypadku testu POST powtórzenie działania zależy całkowicie od charakteru działania i praktycznie każdy kod statusu może zostać zwrócony. 400/409 jest powszechne, ale wiele takich zasobów po prostu wykonuje akcję ponownie, co jest często pożądane.
+1. 404 dla dziwnych adresów URL brzmi sensownie. – ArjunShankar