Qual è il modo appropriato di fornire una stima per il completamento della richiesta quando il server restituisce un codice di stato 202 - Accepted
per richieste asincrone?Stato HTTP 202: come fornire informazioni sul completamento della richiesta asincrona?
Dalle HTTP spec (corsivo aggiunte da me):
202 accettate
La richiesta è stata accettata per l'elaborazione, ma l'elaborazione non è stata completata. [...]
L'entità ritornò con questa risposta dovrebbe includere un'indicazione dello stato attuale del richiesta e sia un puntatore a un monitor di stato o di qualche stima quando l'utente può aspettarsi la richiesta da soddisfare.
Ecco alcuni dei pensieri:
- ho guardò la direttiva max-age, ma il suo utilizzo sarebbe abusando
Cache-Control
? - Restituisce il tempo di attesa previsto nel corpo della risposta?
- Aggiungere un'intestazione di risposta
X-
specifica dell'applicazione, ma le intestazioniX-
sono state dichiarate obsolete in RFC 6648? - Aggiungere un'intestazione di risposta specifica (non
X-
)? Se sì, come dovrebbe essere nominato? La domanda SO Custom HTTP headers : naming conventions ha dato alcune idee, ma dopo la deprecazione risponde solo al modo in cui sono formattate le intestazioni HTTP, non come dovrebbero essere nominati. - Altri suggerimenti?
Dato che il valore dovrebbe essere "numero intero di secondi (in decimale) ", se vogliamo una risoluzione migliore, l'intestazione' X-Retry-After' con valori in es i millisecondi saranno invece più appropriati? –
@JosipRodin Io suggerisco di usare 'Retry-After: 0' invece di inventare un'intestazione personalizzata perché nel momento in cui il client ottiene la risposta, alcuni millisecondi sarebbero passati comunque e possono riprovare subito. Nel caso di un'operazione asincrona, 'Retry-After: 0' sembra dire" il risultato non è ancora pronto, ma sentiti libero di chiedere di nuovo (ogni volta che lo desideri). " – Gili
@ Gili ma cosa succede se non voglio che chiedano quando vogliono? Ad esempio, se la maggior parte dei client si trova a 150ms di distanza, si tratta di 6 richieste al secondo, in cui potrei aver avuto l'idea di avere solo 2 richieste al secondo. –