2013-02-12 14 views
6

Qual è il codice di stato HTTP più appropriato da assegnare a un client per indicare "la richiesta è valida, ma è ancora in corso, ricontrollare a breve nello stesso identico luogo ".Codice di stato HTTP più appropriato per "job in progress"

Ad esempio, il client invia una richiesta iniziale per avviare una query pesante e il server restituisce immediatamente un URL che il client può eseguire periodicamente il polling del risultato. Nel caso in cui il client chiami questo URL prima che il lavoro sia completato, qual è il codice di stato HTTP più appropriato da restituire?

202 Accettato sarebbe il mio primo impulso. È la migliore, o ce n'è una migliore che sia più idiomatica per questo scopo nelle interfacce REST?

risposta

16

Per me, 202 Accettato sarebbe il modo migliore per andare.

Vedere documentation sul sito Web W3C.

10.2.3 202 accettato

La richiesta è stata accettata per l'elaborazione, ma l'elaborazione è non è stata completata. Alla richiesta potrebbe o non potrebbe essere eventualmente applicato , in quanto potrebbe non essere consentito quando l'elaborazione avviene effettivamente. Non è possibile inviare nuovamente un codice di stato da un'operazione asincrona come questa.

La risposta 202 è intenzionalmente non impegnativa. Il suo scopo è di consentire a un server di accettare una richiesta per qualche altro processo (forse un processo orientato al batch eseguito solo una volta al giorno) senza che richiede che la connessione dell'agente utente al server rimanga attiva fino al il processo sia completato . L'entità restituita con questa risposta DOVREBBE includere un'indicazione dello stato corrente della richiesta e un puntatore a un monitor di stato o una stima di quando l'utente può aspettarsi che la richiesta sia soddisfatta.

Problemi correlati