2008-10-14 4 views
2

Si j'ai une ressource qu'un client demandeur n'a pas accès à mais je veux les informer au sujet d'une ressource alternative pour laquelle ils faire ont accès, dois-je envoyer un 403 Forbidden avec l'URI de la ressource alternative en l'en-tête ou le contenu? Ou devrais-je simplement envoyer un 303 See Other rediriger vers la ressource à laquelle ils ont accès?Quelle devrait être la réponse HTTP lorsque la ressource est interdite mais qu'il existe une autre ressource?

Répondre

1

Il n'y a pas de code HTTP pour "interdit mais regardez-le".

Vous pouvez cependant personnaliser votre page d'erreur 403 afin qu'un lien vers le contenu alternatif soit présent. Si vous avez plusieurs liens alternatifs, vous pourriez trouver cette solution meilleure.

Si informer l'utilisateur que l'accès est refusé n'est pas si important, vous pouvez utiliser un 302 (redirection temporaire) ou, si l'utilisateur n'aura jamais accès au contenu interdit, un 301 (redirection permanente).

1

Si un humain voit la page d'erreur, peu importe le code que vous choisissez; s'il y a un message d'erreur lisible par un humain; les gens vont ignorer le code. La question est: que voulez-vous qu'une machine fasse? Voulez-vous qu'une machine redirige automatiquement vers le contenu alternatif en toutes circonstances? S'il y a une raison légitime pour que quelqu'un récupère des pages de votre site par programme, devrait-il obtenir le contenu alternatif dans ce cas? Ou si quelqu'un utilise un serveur proxy de mise en cache, voudriez-vous le rediriger automatiquement?

Si vous ne voulez pas qu'il se redirige automatiquement dans ces circonstances, alors 403 est la bonne réponse. Si vous préférez que les gens obtiennent le bon contenu et que seuls les utilisateurs vraiment curieux se soucient que le contenu original a été interdit, alors un 301 ou 302 aurait plus de sens.

Questions connexes