Pergunta

Estou construindo um serviço web RESTful que possui vários URIs para um de seus recursos, porque há mais de um identificador exclusivo.O servidor deve responder a uma solicitação GET para um URI alternativo retornando o recurso ou devo enviar um redirecionamento HTTP 3xx para o URI canônico?É HTTP 303 (veja também) o redirecionamento mais apropriado?

Esclarecimento:a especificação HTTP deixa claro que a escolha do redirecionamento depende de qual URI as solicitações futuras devem usar.Na minha aplicação, o URI 'canônico' é a mais estável das alternativas;um URI alternativo sempre direcionará para o mesmo URI canônico ou se tornará inválido.

Foi útil?

Solução

Eu pessoalmente preferiria devolver o recurso em vez de me preocupar com um redirecionamento, embora eu suspeite que isso seja apenas porque meu subcosciente está me dizendo que os redirecionamentos são mais lentos.

No entanto, se você decidir usar um redirecionamento, acho que um 302 ou 307 pode ser mais apropriado do que um 303, embora o w3.org contém detalhes dos diferentes códigos de redirecionamento que você pode usar.

Outras dicas

Sob o W3C Arquitetura da World Wide Web, Volume Um, há uma seção sobre aliases de URI (Seção 2.3.1) que afirma o seguinte:

“Quando um alias de URI se torna moeda comum, o proprietário do URI deve usar técnicas de protocolo, como redirecionamentos do lado do servidor, para relacionar os dois recursos.A comunidade se beneficia quando o proprietário do URI suporta o redirecionamento de um URI com alias para o URI "oficial" correspondente.Para obter mais informações sobre redirecionamento, consulte a seção 10.3, Redirecionamento, em RFC2616.Veja também SALGADINHOS para uma discussão sobre algumas práticas recomendadas para administradores de servidores."

Se valer a pena, eu recomendaria um redirecionamento 302.

A resposta de Ubiguchi tinha o que eu precisava, exceto que agora acho que um redirecionamento é o caminho a seguir, por meio do link para a seção de especificações HTTP 1.1 sobre códigos de resposta.Acontece que eu realmente preciso de um redirecionamento 301 porque o URI para o qual estou redirecionando é mais 'correto' e estável e, portanto, deve ser usado para solicitações futuras.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top