Pregunta

Estoy creando un servicio web RESTful que tiene múltiples URI para uno de sus recursos, porque hay más de un identificador único.¿Debería el servidor responder a una solicitud GET de un URI alternativo devolviendo el recurso, o debería enviar una redirección HTTP 3xx al URI canónico?Es HTTP 303 (ver también) ¿La redirección más adecuada?

Aclaración:La especificación HTTP deja claro que la elección de la redirección depende de qué URI deben utilizar futuras solicitudes.En mi aplicación, el URI 'canónico' es la más estable de las alternativas;un URI alternativo siempre dirigirá al mismo URI canónico o dejará de ser válido.

¿Fue útil?

Solución

Personalmente, preferiría devolver el recurso en lugar de fallar con una redirección, aunque sospecho que eso se debe solo a que mi subcosciente me dice que las redirecciones son más lentas.

Sin embargo, si decidiera utilizar una redirección, creo que un 302 o 307 podrían ser más apropiados que un 303, aunque el w3.org tiene detalles de los diferentes códigos de redireccionamiento que podría utilizar.

Otros consejos

Bajo el W3C Arquitectura de la World Wide Web, Volumen Uno, hay una sección sobre alias de URI (Sección 2.3.1) que establece lo siguiente:

"Cuando un alias de URI se convierte en moneda común, el propietario del URI debe utilizar técnicas de protocolo, como redireccionamientos del lado del servidor, para relacionar los dos recursos.La comunidad se beneficia cuando el propietario del URI admite la redirección de un URI con alias al URI "oficial" correspondiente.Para obtener más información sobre la redirección, consulte la sección 10.3, Redirección, en RFC2616.Ver también PAPAS FRITAS para una discusión sobre algunas de las mejores prácticas para administradores de servidores."

Por si sirve de algo, recomendaría una redirección 302.

La respuesta de Ubiguchi tenía lo que necesitaba, excepto que ahora creo que una redirección es el camino a seguir, a través del enlace a la sección de especificación HTTP 1.1 sobre códigos de respuesta.Resulta que en realidad necesito una redirección 301 porque el URI al que estoy redirigiendo es más "correcto" y estable y, por lo tanto, debería usarse para futuras solicitudes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top