2013-02-12 12 views
6

Jaki jest najbardziej odpowiedni kod statusu HTTP do przekazania klientowi w celu oznaczenia "Twoja prośba jest w porządku, ale wciąż jest w toku, sprawdź ponownie wkrótce w tym samym miejscu . "Najodpowiedniejszy kod stanu HTTP dla "zadania w toku"

Załóżmy na przykład, że klient przesyła początkowe żądanie, aby rozpocząć intensywne zapytanie, a serwer natychmiast zwraca adres URL, który klient może okresowo odpytywać dla wyniku. Jeśli klient wywoła ten adres URL przed zakończeniem zadania, jaki jest najbardziej odpowiedni kod statusu HTTP do zwrócenia?

202 Zaakceptowany byłby moim pierwszym impulsem. Czy jest to najlepszy, czy jest lepszy, który jest bardziej idiomatyczny do tego celu w interfejsach REST?

Odpowiedz

16

Dla mnie, 202 Zaakceptowany byłby najlepszym sposobem, aby przejść.

Zobacz stronę documentation na stronie internetowej W3C.

10.2.3 202 Przyjęte

Żądanie zostało przyjęte do realizacji, ale dla przetwórstwa nie zostały zakończone. Żądanie może, ale nie musi, zostać ostatecznie wykonane, ponieważ może być niedozwolone, gdy przetwarzanie faktycznie ma miejsce. Nie ma możliwości ponownego wysłania kodu stanu z asynchronicznej operacji takiej jak ta.

Odpowiedź 202 jest celowo niezobowiązująca. Jego celem jest umożliwienie serwerowi zaakceptowania żądania dla innego procesu (być może przeprowadzanego tylko wsadowo jeden raz dziennie), bez konieczności sprawdzenia, czy połączenie klienta użytkownika z serwerem trwa do , dopóki proces nie zostanie zakończony. . Jednostka zwrócona z tą odpowiedzią powinna zawierać informację o bieżącym stanie żądania i albo wskaźnik do monitora stanu, albo szacunkową ocenę, kiedy użytkownik może oczekiwać, że żądanie zostanie spełnione.

Powiązane problemy