Jestem ciekaw, jaki jest najbardziej odpowiedni kod stanu HTTP dla strony „element nie istnieje”.
Jeśli sama strona nie istnieje, oczywiście użyję 404. Jednak jedna z moich stron ma userid
argument (jest to strona „edytuj użytkownika”) i jeśli nie istnieje żaden użytkownik o podanym identyfikatorze użytkownika, wyświetlam stronę błędu, ale chciałbym również wysłać nagłówek statusu 4xx (ponieważ „200 OK” tak naprawdę nie pasuje).
Wydaje mi się, że 404 byłby w porządku, ponieważ jest to „nie znaleziono”, a nie „nie znaleziono pliku”, ale zastanawiam się, czy istnieje lepszy kod dla tego przypadku.
źródło
Kod powrotu 404 w rzeczywistości oznacza „nie znaleziono zasobu” i ma zastosowanie do każdego podmiotu, dla którego żądanie zostało wysłane, ale nie zostało spełnione. Działa więc równie dobrze w przypadku stron, podsekcji stron i każdego elementu istniejącego na stronie, który ma określone żądanie renderowania.
Tak więc 404 to właściwy kod do użycia w tym scenariuszu. Zwróć uwagę, że nie dotyczy to „nie znaleziono serwera”, czyli innej sytuacji, w której żądanie zostało wysłane, ale nie otrzymano żadnej odpowiedzi, w przeciwieństwie do odpowiedzi, ale bez żądanego zasobu.
źródło
404 jest w porządku. Definicje kodów stanu HTTP / 1.1 z RFC2616
źródło
Zależy to od tego, czy identyfikator użytkownika jest identyfikatorem zasobu czy dodatkowym parametrem. Jeśli tak, możesz zwrócić 404, jeśli nie, możesz zwrócić inny kod, taki jak
400 (bad request) ‐ indicates a bad request
lub
412 (Precondition Failed) e.g. conflict by performing conditional update
Więcej informacji w darmowym InfoQ Explores: książka REST .
źródło