ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re[2]: [apache-talk] mod_accel + cookie



> >>
> >> > Авторизация через куки.
> [----------------------]
>
> Скажите, а разве нельзя проверять заголовок If_Modified_Since
> и в зависимости от этого выдать страницу или
> статус 304

Плавали, утонули...
Для этого нужно выдавать Last-modified. Это неплохо получается, но в
некоторых случаях получается казус, когда с одного компа зашел сначала один
узер, потом другой - браузер может взять уже имеющийся документ, т.к. он еще
"свежий". Кроме того, возможны глюки с акселератором. Документ кэшируется от
одного юзера, а  потом отдается другому без проверки If-Modified-Since.
Во всяком случае опыты на коленке по следующей схеме дали удручающий
результат:
1. Сервер без акселератора, клиент под ИЕ 5.5
2. Выдаем Last-Modified всегда
3. проверяем If-modified-Since и если этот заголовок есть и условия по
времени выполнены, то выдаем NOT_MODIFIED и отваливаем.
4. Входим под одним юзером. Смотрим.
5. Входим другим юзером. Видим то же самое.

Резюме: Игрища на основе Last-modified + Accelerator = bug'и
непредсказуемые. Если поведение сервера и акселератора еще можно
предсказать, то как поведет себя клиент ???? Один выдает If-modified-since,
другой нет. Один проверяет Last-modified, другой - нет.

В общем, лучшим решением было бы если определенная кука была как бы частью
URL. Значение этой куки довольно постоянное, для многих клиентов оно не
изменяется месяцами. Такой контент можно было бы кэшировать. Понятно, что
объем кэша сильно вырастет, но такая работа нужна не для всего сайта, а лишь
для его небольшой персонафицированной части.

Делать извращенные решения тоже не хочется. Конечно, можно сделать что-то
типа пяти rewrite + redirect + alias и т.д. и это будет работать. Но это
потенциальный глюкодром в случае малейшего изменения конфигурации сервера. В
этом случае лучше (т.е. проще) поставить второй (третий) бэкэнд сервер и
делить нагрузку без кэширования.

Итак, есть ли _красивое_и_простое_ решение этой проблемы или все это плод
моего воспаленного воображения?

Сергей

ЗЫ. Может быть Сысоев как автор скажет свое веское (пусть даже не радостное)
слово?




=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.