Czy treść odpowiedzi jest dozwolona dla żądania HTTP-DELETE?


82

Zakładam, że kod odpowiedzi 200 zawsze dopuszcza treść odpowiedzi, ale nie mogę znaleźć żadnej wyraźnej wzmianki o treściach odpowiedzi dla żądań DELETE.

Odpowiedzi:


139

Jest to wyraźnie wymienione w dokumencie RFC

Krótka odpowiedź brzmi:

Państwo powinno zawierać korpus odpowiedzi z jednostki opisującej element usunięty / zasobu jeśli wrócisz 200 .

202 jest czymś w rodzaju asynchronicznego statusu zwrotu żądania / odpowiedzi.

204 mówi wyraźnie, że nie dołączasz treści odpowiedzi


2
Głosuj za odwołaniem się do specyfikacji HTTP. Należy również pamiętać, że aktualizują specyfikację HTTP i wyjaśniają wiele problemów tutaj tools.ietf.org/wg/httpbis
— Darrel Miller.

9
+1 Ale specyfikacja mówi, że możesz zwrócić 200 ok, jeśli treść odpowiedzi zawiera jednostkę „opisującą stan”, a nie jednostkę usuniętą.
— naikus

1
To faktycznie mówi „obejmuje podmiot opisujące ten stan” - tak powrocie usuniętego podmiot posiadający „skasowany” flaga wydaje się całkowicie prawidłowy.
— Ryan Wheale,

Czy odpowiedź 202 (zaakceptowana) musi zawierać treść?
— Soullivaneuh

15

Tak, zazwyczaj powinieneś odpowiedzieć kodem odpowiedzi 200 zgodnie ze specyfikacją W3C :

9.7 USUŃ

Metoda DELETE żąda, aby serwer pochodzenia usunął zasób zidentyfikowany przez identyfikator URI żądania. Ta metoda MOŻE zostać zastąpiona przez interwencję człowieka (lub w inny sposób) na serwerze pochodzenia. Klient nie może zagwarantować, że operacja została wykonana, nawet jeśli kod stanu zwrócony z serwera pochodzenia wskazuje, że akcja została zakończona pomyślnie. Jednak serwer NIE POWINIEN wskazywać sukcesu, chyba że w momencie udzielenia odpowiedzi zamierza usunąć zasób lub przenieść go w niedostępne miejsce.

Pomyślna odpowiedź POWINNA być 200 (OK), jeśli odpowiedź zawiera jednostkę opisującą status, 202 (Zaakceptowano), jeśli czynność nie została jeszcze uchwalona, ​​lub 204 (Brak treści), jeśli czynność została uchwalona, ​​ale odpowiedź nie zawiera jednostka.

Jeśli żądanie przechodzi przez pamięć podręczną, a identyfikator URI żądania identyfikuje co najmniej jedną jednostkę obecnie buforowaną, te wpisy POWINNY być traktowane jako nieaktualne. Odpowiedzi na tę metodę nie podlegają buforowaniu.


2
Źle przeczytałeś język. Kody są wymienione w kolejności rosnącej, a kolejność nie oznacza preferowanej odpowiedzi. Każda odpowiedź 200, 202 lub 204 jest równie akceptowalna, jak opisano w tym tekście. POWINIEN oznacza tylko, że kody są zaimplementowane w zwykłych konwencjach (np. 200 zawiera treść, a 204 nie).
— George Shaw
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.