Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

[apache-rus] Re: [apache-rus] Re: [apache-rus] Re: [apache-rus] Заголовки "Expires" и "Cache-control: max-age"



On Tue, 19 Feb 2002, Sergey Gershtein wrote:

> 19 февраля 2002 г. в 15:50 Вы писали:
> >> 
> >> Т.е. проблема на лицо. Может быть, конечно, правильным поведением
> >> mod_accel было бы не анализировать Cache-Control, раз он по HTTP/1.0
> >> ходит, но мне кажется, что само наличие в ответе сервера заголовков
> >> Expires и Cache-Control, противоречащих друг другу, не есть хорошо.
> 
> AT> Я согласен по "букве" - тем более что max-age имеет больший приоритет.
> 
> AT> По духу - установка mod_charset-ом Expires на backend - вещь совершенно
> AT> ненужная и даже вредная, всеми перекодировками должен frontend заниматься.
> 
> С тем, что frontend должен заниматься перекодировкой, я тоже согласен
> по букве и по духу, но жизнь такова, что приходится ставить все с ног
> на голову.
> 
> У нас на backend-е что-то живет в koi8-r, что-то в windows-1251,
> причем по массе разных причин приводить все в единый стройный порядок
> сложно и дорого. Поэтому принята была такая схема: на backend-е стоит
> mod_charset который пытается все и всегда отдавать только в
> windows-1251 и точка. Frontend собран без mod_charset-а. Тех
> клиентов, которые не хотят понимать windows, мы с сожалением,
> игнорируем.
> 
> Но грабли обнаружились в таком вот месте.  Пришел хитрый клиент,
> который сказал "Accept-Charset: koi8-r".  Если на frontend-е
> закеширован ответ (в windows-1251), то он его клиенту и отдаст.  Это
> нормально, так и задумано.  Но если в кеше ответа нет, frontend
> получит от backend-а ответ в koi8-r, закеширует его, и дальше уже всем
> начет отдавать ответ в koi8-r.  А это уже катастрофа.
> 
> Как бороться?  Вот варианты, которые приходят в голову:
> 
> 1. Запретить backend-у отдавать в кодировке, отличной от windows-1251,
> не взирая ни на что.  Хорошо, но как?  Насколько я понимаю,
> mod_charset всегда отдаст в koi8-r ежели его о том явно попросят.
> 
> 2. Запретить frontend-у кешировать ответы, полученные в кодировке,
> отличной от windows-1251.  Это само собой бы получилось, если бы
> заголовок Cache-Control выставлялся бы вместе Expires в соотвествующих
> случаях.
> 
> Все, больше ничего в голову не пришло пока.  Буду благодарен за любые
> здравые идеи.

CharsetDefault      windows-1251
CharsetDisableAcceptCharset on
CharsetSelectionOrder


Игорь Сысоев

=============================================================================
=               Apache-Rus@xxxxxxxxxxxxx mailing list                       =
Mail "unsubscribe apache-rus" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://apache.lexa.ru/mail-archive             =







Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.