HTTP-кеширование, аутентификация пользователя и PHP - PullRequest
2 голосов
/ 21 декабря 2011

Я работаю над некоторым программным обеспечением на PHP и пытаюсь заставить его эффективно использовать HTTP-кеширование.Однако одна из проблем, с которыми я сталкивался в последнее время, заключается в том, что после входа страницы, посещенные до входа в систему, кэшируются и не работают так, как если бы они вошли в систему.

Это особенно проблема, если необходимоHTTP-кеш между PHP и клиентом.Если я установлю ограничитель кэша всегда «открытым», то страница, вероятно, всегда будет кэшироваться (даже прокси-кешем). Если я установлю ограничитель кэша как «общедоступный», когда он не вошел в систему, и «приватный», когда он зарегистрирован.в, проблема, которая у меня сейчас есть, вероятно, все еще будет возникать.Если я установлю ограничитель кэша всегда закрытым, прокси-кэш не принесет никакой пользы, и проблема, с которой я сталкиваюсь, вероятно, все равно возникнет.

Каково идеальное решение этой проблемы?Есть ли способ заставить веб-браузер «повторить попытку» после того, как пользователь вошел в систему?Для прокси-кэша я знаю, что есть способы кеширования на основе входящих куки, поэтому я считаю, что это может решить часть проблемы.Но как насчет проблемы с точки зрения веб-браузера?

1 Ответ

1 голос
/ 24 июля 2013

Здесь нет отличного решения, но у вас есть пара вариантов:

  1. Сделайте страницы действительно идентичными независимо от того, вошел ли пользователь в систему или нет, используя AJAX для запроса состояния входа в систему.через службу JSON.
  2. Не кэшируйте страницы, просто кэшируйте сценарии, стили и изображения.Кэширование HTML в браузере полезно только в том случае, если ваши пользователи постоянно смотрят на одни и те же страницы и не ожидают разных результатов.Это ваш вариант использования?Если это так, вы, вероятно, уже используете AJAX для предоставления обновлений в режиме реального времени, и, вероятно, это не большой скачок для реализации опции № 1.
...