Apache, mod_cache и файлы cookie

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

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

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

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


person Jacob_1980    schedule 06.08.2011    source источник


Ответы (1)


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

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

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

Проверить файл cookie и перенаправить с помощью Apache

Будь здоров,
Джо

person codewaggle    schedule 05.09.2011