En évitant redirection 301 de la mise en cache
C'est une question de suivi à À l'aide de 301/303/307 redirige dynamique des url courtes, où j'ai essayer de déterminer la meilleure méthode pour mettre en œuvre à court de redirection d'url lors de l'url de destination va changer sur une base fréquente.
Alors qu'il semble que la 301 et la 307 redirige à la fois d'effectuer la même façon, la question qui me préoccupe est de redirection 301 de mise en cache (comme indiqué ici)- est la meilleure façon d'éviter cela à l'utilisation 307 redirige à la place (je suis en supposant 307 redirige ne sera jamais cache?), ou envoyer explicitement un no-cache header ("Cache-Control: no-cache, must-revalidate")?
connexes: stackoverflow.com/questions/12192590/...
OriginalL'auteur Yarin | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
N'essayez pas d'éviter 301 mise en cache. Si vous ne voulez pas n'importe quel utilisateur de l'agent de la mémoire cache de rediriger, puis il suffit de ne pas utiliser une redirection 301. En d'autres termes, 301 la mise en cache est là pour rester, et du point de vue sémantique, c'est un permanente redirection, donc si vous avez l'intention de changer l'URL de destination, 301 n'est pas le bon code d'état à utiliser. D'autre part, 307 les réponses ne sont pas mises en cache par défaut.
Cache-Control
quand il est présent sur une 301.Le RFC dit "Le 301 (redirection Permanente) code d'état indique que la ressource cible a été affecté un nouveau permanente URI", alors oui, cela signifie qu'il est permanent. Bien sûr, vous pouvez techniquement les utiliser à d'autres fins, mais alors vous êtes en abuser HTTP sémantique.
Vous êtes en train de lire trop dans le nom. Rien n'est pour toujours. Les noms de domaine vendus. Les entreprises en faillite. Il y a même des limitations techniques, la prévention ceci: tools.ietf.org/html/draft-ietf-httpbis-p6-cache-24#page-28
[...] extremely large values have been demonstrated to cause problems [...]
En conclusion:Forever
signifie simplementuntil the resource is deleted, or a reasonably long time.
Il y a un dernier point que vous avez manqué:
301
est la seule réponse raisonnable pour URI de mise en forme canonique. Codes303
et307
exiger que les clients demandes répétées sur l'URI originale (en battant le point d'URI, de mise en forme canonique): tools.ietf.org/html/...Since the redirection can change over time, the client ought to continue using the original effective request URI for future requests.
URI de mise en forme canonique signifie que les clients doivent être en mesure d'utiliser l'URI canonique à la place de l'alias que redirigés vers eux. Codes303
et307
de l'en empêcher.Vous avez raison sur une chose: l'OP veut rediriger sans mise en cache. Dans un tel cas,
307
est une meilleure solution. Je dis juste que301
avecCache-Control
des en-têtes est parfaitement raisonnable et ne doit pas être écartée pour d'autres utilisations.OriginalL'auteur Mauricio Scheffer
Dans les situations où vous souhaitez que le comportement qu'une redirection 301 apporte, comme la mise à jour des signets du navigateur et le changement de l'URL dans google bot, mais en même temps, veulent suivre les redirections ou effectuer un autre type de fonctionnalités que vous pouvez toujours ajouter les en-têtes pour "no-cache"
En php, il ressemble à ceci:
Liées:
https://stackoverflow.com/a/19003320/175071
OriginalL'auteur Timo Huovinen