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] META HTTP_EQUIV



Hi!

 >> По части -g - это, конечно, здорово.. :) То-то я смотрю, он в три раза
 >> стал больше и тупее.. Только почему -O, а не -O2 ?

 alr> IMHO, -O более верно, нежели -O2. Если компилятор понимает
 alr> -O[0-...], то обычно -O у таких именно -O2 по умолчанию.
А у других -O2 может глючить. Пусть уж так останется.

 >> Может, проще бежать от meta до '>' и смотреть, нет ли 'Content-Type'?

 alr> Это вообще неверно. В принципе.
 alr> Я про выкусывание <meta http-equiv=...>.
 alr> Лучше вообще не трогать ни одного
 alr> <META ... > на уровне демона. В данном случае разговор шел про то,
 alr> как заставить демон делать то, что по уму должно быть втроено абсолютно
 alr> в другом месте - именно в обработчиках publish, и срабатывать в момент
 alr> выкладываниядокумента на диск.
В теории - это совершенно верно. Но на практике таких обработчиков publish 
просто нет, а с учетом того, что publish бывает по ftp - то и не может быть. С 
точки зрения экономии ресурсов, правильным является вырезание этого хозяйства 
однократно. Либо в момент publish, либо потом отдельным скриптом. Но над 
publish и скриптами на чужих серверах я не властен, а вырезать _надо_.

Теперь почему _надо_ вырезать (у меня на этом вырезании пунктик :).
Стандарт HTTP про <META...> ничего не говорит, естественно. Стандарт HTML 3.2
говорит (по смыслу, если надо то цитату я тоже найду) примерно следущее:
<META HTTP-EQUIV...> _может_ быть использован сервером для установки 
HTTP-заголовков. Про использование броузерами нет ни слова и то, что броузеры
используют это для установки charset не более правильно, чем если они 
использовали бы <META HTTP-EQUIV> для установки цвета background (Аналогия.
Тег <I> _может_ быть использован броузером для установки курсивного шрифта. Не 
все броузеры так делают /не везде есть курсив/, но это не повод использовать
<I> для проигрывания музыки).

Почему _нельзя_ использовать META HTTP-EQUIV для каких-то действий со стороны 
броузера тоже понятно. Стандарт HTTP разрешает преобразование содержимого в 
дороге. _Естественно_, не заглядывая в это содержимое, а полагаясь только на 
заголовки. И в общем случае, даже если originating сервер поставил какой-то 
заголовок согласно HTTP-EQUIV, до потребителя все может дойти в совершенно 
другом транспортном представлении и с другими (но корректными!) заголовками.

Я бы резал вообще все <META HTTP-EQUIV>. К сожалению, есть практика делать
Refresh через <META>. Значит нужно резать только то, что конкретно и явно 
мешает ( META HTTP-EQUIV="Content-Type")

 alr> убирать из тега совпавшее со вторым шаблоном, заменяя его или на ';',
 alr> или на ' ', смотря в каком месте тега оно было. И пахнет все это
 alr> полноценным разбором html всего документа, иначе
 alr> в общем случае задача не решается. ;))
Не надо разбирать html (зачем?), хватает разборки по тегам - они не бывают
вложенными. Что касается "что вынимать", то в случае с content-type убирать 
нужно весь тэг т.к. content-type есть (и обязателен) в HTTP-заголовке.

С уважением,Alex Tutubalin

--- GoldED 2.42.G1114+








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

[ 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.