Question

Je construis un service Web RESTful qui possède plusieurs URI pour l'une de ses ressources, car il existe plusieurs identifiants uniques.Le serveur doit-il répondre à une requête GET pour un URI alternatif en renvoyant la ressource, ou dois-je envoyer une redirection HTTP 3xx vers l'URI canonique ?Est HTTP 303 (voir aussi) la redirection la plus appropriée ?

Clarification:la spécification HTTP indique clairement que le choix de la redirection dépend de l'URI que les futures requêtes doivent utiliser.Dans mon application, l'URI « canonique » est la plus stable des alternatives ;un URI alternatif dirigera toujours vers le même URI canonique ou deviendra invalide.

Était-ce utile?

La solution

Personnellement, je préférerais renvoyer la ressource plutôt que de m'embêter avec une redirection, même si je soupçonne que c'est uniquement parce que mon subconscient me dit que les redirections sont plus lentes.

Cependant, si vous décidez d'utiliser une redirection, je pense qu'un 302 ou un 307 pourrait être plus approprié qu'un 303, bien que le w3.org contient des détails sur les différents codes de redirection que vous pouvez utiliser.

Autres conseils

Sous le W3C Architecture du World Wide Web, Volume Un, il y a une section sur les alias URI (Section 2.3.1) qui précise ce qui suit :

"Lorsqu'un alias d'URI devient une monnaie commune, le propriétaire de l'URI doit utiliser des techniques de protocole telles que les redirections côté serveur pour relier les deux ressources.La communauté bénéficie lorsque le propriétaire de l'URI prend en charge la redirection d'un URI alias vers l'URI « officiel » correspondant.Pour plus d'informations sur la redirection, voir la section 10.3, Redirection, dans RFC2616.Voir également PUCES pour une discussion sur certaines bonnes pratiques pour les administrateurs de serveur."

Pour ce que ça vaut, je recommanderais une redirection 302.

La réponse d'Ubiguchi avait ce dont j'avais besoin, sauf que je pense maintenant qu'une redirection est la voie à suivre, via le lien vers la section de spécification HTTP 1.1 sur les codes de réponse.Il s'avère que j'ai en fait besoin d'une redirection 301 car l'URI vers lequel je redirige est plus « correct » et stable, et devrait donc être utilisé pour les demandes futures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top