Vermeidung 301 redirect caching
Dies ist ein follow-up-Frage zu Mit 301/303/307 Umleitungen für dynamische kurz-urls, wo ich versuche zu bestimmen, die beste Methode für die Umsetzung der kurz-url-Umleitung, wenn die Ziel-url ändern, auf eine häufige Grundlage.
Während es scheint, dass 301 und 307 Weiterleitungen führen beide die gleiche Weise, das Problem, das mir Sorge bereitet, ist eine 301-Weiterleitung von caching (wie dokumentiert hier)- ist der beste Weg, um dies zu vermeiden, verwenden 307-Weiterleitungen statt (ich gehe davon 307-Weiterleitungen werden nie ein cache?), oder explizit senden Sie einen no-cache header ("Cache-Control: no-cache, must-revalidate")?
- Verwandte: stackoverflow.com/questions/12192590/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht versuchen zu vermeiden, 301 caching. Wenn Sie nicht wollen, dass jeder user-agent cache-Ihre umleiten, dann einfach nicht verwenden eine 301-Weiterleitung. In anderen Worten, 301 caching ist hier zu bleiben, und semantisch, es ist ein permanente umleiten, so dass, wenn Sie planen, ändern Sie die Ziel-URL, 301 ist nicht der richtige status-code zu verwenden. Auf der anderen Seite, 307 Antworten werden nicht zwischengespeichert, die standardmäßig.
Cache-Control
wenn es vorhanden ist, auf ein 301.A 301 response is cacheable unless otherwise indicated by [...] explicit cache controls
woexplicit cache controls
bedeutetCache-Control
und die zugehörigen Header.[...] extremely large values have been demonstrated to cause problems [...]
Fazit:Forever
bedeutet nuruntil the resource is deleted, or a reasonably long time.
301
ist die einzige angemessene Antwort für URI Kanonisierung. Codes303
und307
dass clients wiederholen Sie die Anfragen auf die ursprüngliche URI (Sieg über den point-of-URI Kanonisierung): 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 Kanonisierung bedeutet clients sollten in der Lage sein, die kanonischen URI anstelle des alias, weitergeleitet. Codes303
und307
verhindern.307
ist eine bessere Lösung. Ich sage nur, dass301
mitCache-Control
Header ist durchaus sinnvoll und sollte nicht ausgeschlossen werden, für andere Verwendungen.In Situationen, wo Sie wollen das Verhalten, dass eine 301-Weiterleitung bringt, wie die Aktualisierung der browser-Lesezeichen und die änderung der URL in den google-bot, aber zur gleichen Zeit verfolgen möchten, der leitet, oder eine andere Art von Funktionalität, die Sie jederzeit hinzufügen der cache-control-Header "no-cache"
In php sieht das so aus:
Verwandte:
https://stackoverflow.com/a/19003320/175071