Est-ce mal de retour 202 “Accepté” en réponse à HTTP GET?

J'ai un ensemble de ressources dont les représentations sont paresseusement créé. Le calcul de construire ces représentations peuvent prendre n'importe où de quelques millisecondes à quelques heures, en fonction de la charge du serveur, les ressources, et la phase de la lune.

La première demande reçue de la ressource commence le calcul sur le serveur. Si le calcul se termine dans quelques secondes, le calcul de la représentation est retourné. Sinon, une 202 statut "Accepté" le code est retourné, et le client doit interroger la ressource jusqu'à la représentation finale est disponible.

La raison de ce comportement est le suivant: Si un résultat est disponible dans un délai de quelques secondes, il doit être récupéré dès que possible; sinon, quand il devient disponible n'est pas important.

En raison de la limitation de la mémoire et le volume de demandes, ni NIO, ni le temps d'interrogation est une option (c'est à dire je ne peux pas garder près de suffisamment de connexions ouvertes, ni même je peut même s'adapter à toutes les demandes dans la mémoire, une fois que "quelques secondes" ont passé, je persiste, l'excès de demande). De même, le client limitations sont tels qu'ils ne peuvent pas gérer un rappel d'achèvement, à la place. Enfin, notez que je ne suis pas intéressé par la création d'une "usine" de ressources que l'un des Postes, que des allers-retours font que nous ne le par morceaux en temps réel contrainte de plus que ce qui est souhaité (d'ailleurs, c'est extra complexité; aussi, c'est une ressource qui serait à l'avantage de la mise en cache).

J'imagine que il ya une certaine controverse sur le retour d'un 202 statut "Accepté" code en réponse à une requête GET, vu que je n'ai jamais vu cela en pratique, et son utilisation est plus intuitive, en réponse à des méthodes dangereuses, mais je n'ai jamais trouvé quoi que ce soit de décourager. De plus, je ne suis pas à préserver à la fois la sécurité et l'idempotence?

Donc, ce que les gens pensent à propos de cette approche?

MODIFIER: je dois mentionner que c'est pour une entreprise web API--pas pour les navigateurs.

  • Personnellement, je pense que c'est une bonne idée, c'est exactement la définition d'un 202. Qu'il est rarement utilisé dans la pratique est à mon humble avis plus parce que quelques webdevelopers de soins sur le fonctionnement correct des codes de statut car ils sont plus utilisés pour navigateur / user-agent de l'interaction dans ce cas, un 202 donne aucun indice visible (leur donner un 200 et ils sont heureux...).
  • utilisez simplement 200. 202 est ce qu'il est censé être, mais dans la pratique, les gens ne vous attendez pas 202.
  • il a besoin d'un visa pour un 200 pour être utile dans la pratique cependant.
InformationsquelleAutor user359996 | 2010-11-04