Citant RESTful Web Services la page 378:
303 ("Voir Autres")
La demande a été traitée, mais au lieu du serveur d'envoi d'un document de réponse, il est l'envoi du client la URI d'un document de réponse. Cela peut être l'URI d'un message d'état statique ou l'URI d'une ressource plus intéressante.
Quelques pages plus loin ...
307 (« Redirect temporaire »)
La demande n'a pas été traitée, car la ressource est pas à la maison: il est situé à un autre URI. Le client doit renvoyer la demande à un autre URI. Pour les requêtes GET
, où la seule chose demandée est que le serveur envoie une représentation, ce code d'état est identique to 303 (“See Other”)
. Un cas typique où 307
est une bonne réponse à un GET
est lorsque le serveur veut envoyer un client à un site miroir. Mais pour POST, PUT, and DELETE
demandes, où le serveur est censé prendre une action en réponse à la demande, ce code d'état est significativement différent de 303
. Un 303
en réponse à POST, PUT, or DELETE
signifie que l'opération a réussi mais que le corps d'entité de réponse n'est pas envoyé avec cette demande. Si le client veut le corps d'entité de réponse, il doit faire une demande GET
à un autre URI. Un 307
en réponse à un POST, PUT, or DELETE
signifie que le serveur n'a même pas essayé pour effectuer l'opération. Le client doit renvoyer la totalité de la demande à l'URI au l'en-tête Location
.
Une analogie peut aider. Vous allez à une pharmacie avec une prescription à remplir. Un 303
est le pharmacien disant "Nous avons rempli votre prescription. Rendez-vous à la fenêtre suivante pour choisir votre médicament. "A 307
est le pharmacien en disant" Nous ne pouvons pas remplir cette prescription. Rendez-vous au à la pharmacie d'à côté. "