Как избежать кеширования перенаправления браузера - PullRequest
3 голосов
/ 15 ноября 2011

Это не первый раз, когда я остановился на этой проблеме. Каждый раз, когда я использую редирект 301, браузер кэширует его. Когда я изменяю перенаправление в своем приложении, мне приходится вручную очищать кеш браузера.

Это не очень приветствуется для веб-сайта, как вы поймете. Есть ли решение, чтобы избежать этого кеширования?

В настоящее время я получил список новых перенаправлений от моего клиента. В моем .htaccess я заменил старые на новые, но это не дает эффекта.

Когда я очистил кеш браузера, он работает нормально.

Какие-нибудь решения? Большое спасибо!

Ответы [ 2 ]

16 голосов
/ 15 ноября 2011

Цитировать спецификацию HTTP с кодом состояния 301 :

301 Постоянно перемещено

Запрошенный ресурс был назначенновый постоянный URI и любые будущие ссылки на этот ресурс ДОЛЖНЫ использовать один из возвращенных URI.Клиенты с возможностями редактирования ссылок должны автоматически связывать ссылки на Request-URI с одной или несколькими новыми ссылками, возвращаемыми сервером, где это возможно.Этот ответ может быть кэширован, если не указано иное.

Следовательно, тот факт, что браузеры кэшируют перенаправленный URI, не должен быть сюрпризом, так как это сделано, как указано.

Чтобы обойти этопроблема, большинство сайтов используют 302 (307 также могут быть использованы).

1 голос
/ 11 сентября 2016

Вот еще одна релевантная цитата из спецификации HTTP / 1.1 (в дополнение к ответу @Bruno):

13.4 Кэшируемость ответов

...

Ответ, полученный с кодом состояния 200, 203, 206, 300, 301 или 410, МОЖЕТ храниться в кэш-памяти и использоваться в ответ на последующий запрос в соответствии с механизмом истечения срока действия, если только кэш-память не существует.директива -control запрещает кэширование.

https://tools.ietf.org/html/rfc2616#section-13.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...