Apache, mod_cache и Cookies - PullRequest
       33

Apache, mod_cache и Cookies

4 голосов
/ 06 августа 2011

Я думаю об использовании mod_cache. Однако страницы (сгенерированные php), которые я хочу кэшировать с помощью Apache, обычно содержат логин этого пользователя («Вы вошли как ...»). Поэтому я не могу просто кэшировать одну страницу для всех пользователей.

Состояние входа определяется cookie. Поэтому я подумал, что мог бы (на PHP) включить заголовок «Vary: Cookie» на каждой странице. Если я правильно понимаю RFC 2616, это должно дать команду алгоритму кэширования Apache (или любому другому) кэшировать отдельную страницу для каждого отдельного значения Cookie, отправляемого пользовательским агентом.

Таким образом, если браузер не отправляет cookie (пользователь вышел из системы), кэшированный ответ хранится отдельно от кэшированного ответа на запрос с Cookie: state = 89898XAAJ (пользователь вошел как 'Jacob'), и это снова хранится отдельно от кэшированного ответа на запрос Cookie: state = XXAIU2389 (пользователь вошел как 'Bob'). И если спустя некоторое время пользователь запрашивает тот же URL-адрес и использует Cookie: state = 89898XAAJ, ему предоставляется правильная страница с надписью «Вы вошли в систему как Джейкоб» (а не с другими кэшированными).

Правильно ли мое понимание, и это сработает, или я что-то упускаю здесь?

1 Ответ

0 голосов
/ 05 сентября 2011

Я не уверен, будет ли описанный вами подход работать или нет.

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

На этой странице обсуждается перезапись на основе значения cookie:

Проверка cookie и перенаправление с Apache

Be Well,Джо

...