|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 03 Apr 2003 16:33:53 To : Alan Long Subject : Re: Выдача заголовков в CGI скриптах -------------------------------------------------------------------------------- Здравствуй, Alan Long. AC>> Может быть, когда-нибудь соберусь задокументировать то, что мы в AC>> коммунивере насобирали. Общая идея - браузеру только что AC>> запостившего товарища можно отдать свежие данные, AL> В принципе на данный момент интересует эта ситуация, так как это все-таки не AL> web-chat, и сообщения пишутся ни как не чаще чем раз в 10 мин. Тогда берется HTTP-акселератор, который умеет управляться специальным заголовком, вроде как X-Accel-Expires у сысоевского mod_accel, и настраивается на то, что он на штатные заголовки, управляющие временем, не смотрит, а смотрит на этот заголовок, и умолчание у него 10 минут. Если содержание зависит от кук, он должен быть об этом в курсе (mod_accel такое может, и даже лучше - ему можно указать либо какие куки нужно учитывать (все остальные не нужно), либо какие куки учитывать не нужно (все остальные нужно)). Страница выдается с "естественными" параметрами устаревания. Выставляются Expires, Last-Modified etc. Работают они по-разному, для достижения наилучшего эффекта используется комбинация. Того, кто только что запостил что-нибудь, редиректят на URL, отличающийся от того, на который он зашел, каким-нибудь незначащим параметром (типа ...?posted=17). Дабы его браузер прогнулся и сходил за этим урлом на сайт. При дальнейшей работе этот параметр желательно хранить (в пределах сессии), и при постингах увеличивать. Альтернативный вариант, применяемый на форумах, где читают не на несколько порядков чаще, чем пишут - отдавать всегда просроченный документ, и пусть браузер каждый раз ходит за новым. До акселератора. Акселератору время кэширования рассказывают отдельно, дабы лишний раз на бэкэнд не бегал. Информацию о фактах постинга либо гоняют через куки, либо вручную просят акселератор почистить соответствующее место в кэше. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/114775c91bbb9.html, оценка из 5, голосов 10
|