Сижу туплю, не могу понять - кто формирует http заголовок при ответе?
По идеи его должен формировать web сервер. Однако, откуда сервер знает какая кодировака и другие параметры будуд у страницы, которую вернул cgi ?
Если заголовок возвращает cgi, то кто гарантирует что он его вернет ?
Например подключен к серверу perl и php. Скрипты на перле и скрипты на php никаких заголовков не формируют.
Однако, perl возвращает страницу "сырую", т.е. такую которая получилась в результате работы скрипта, без заголовка, а php возвращает еще и несколько полей заголовка (причем каждый раз разные).
А web сервер, по идеи, ничего не должен знать о том, кого он запускает.
Вопрос, правильно ли я мыслю?
Сервер должен формировать заголовок со своими стандартными поялми. Однако, если в ответе от cgi он находит что-то похожее на http заголовок, то должен найти там те поля, которые он проставляет сам, и заменить их на пришедшие от cgi. Поля заголовка, пришедшего от cgi, о которых сервер ничего не знает - он должен "приклеить" к своему заголовку.
Так ?
заголовки формируют и скрипт, и сервер07.06.08 18:02 Автор: dl <Dmitry Leonov>
Сначала скрипт, потом сервер дополняет их информацией о себе. Плюс заголовки могут вставлять разные модули, каковым обычно является и интерпретатор php.
А что на счет пересечения полей?09.06.08 10:41 Автор: PS <PS> Статус: Elderman
Должен ли сервер отслеживать одинковые поля с разными значениями?
Например скрипт, негодяй такой, свормировал поле
X-Powered-By: PHP/6.6.6
А интерпретатор дополнил его X-Powered-By: PHP/5.2.6
Должен ли сервер как-то разруливать такие ситуации ?
Обычно делается общий скрипт, который формирует общие для...10.06.08 20:49 Автор: Den <Денис Т.> Статус: The Elderman
Обычно делается общий скрипт, который формирует общие для большинства страниц поля заголовка - мета теги и т.п..
Этот скрипт, как правило, вызывается из скрипта, ответственного за формирование конкретной страницы методом включения.
Сам сервер (например Apache) не формирует заголовки страниц. Ему это ни к чему. Веб программист сам должен заботиться о формировании нужных полей в заголовке страницы.
> Сам сервер (например Apache) не формирует заголовки > страниц. Ему это ни к чему. Веб программист сам должен > заботиться о формировании нужных полей в заголовке > страницы.
Есть у меня php5 и mantis. Так вот эта связка выдает Status: 200 OK (как пример).
Если мой web server сам не проставит HTTP/1.0 200 OK, проанализировав то что ему вернул cgi, то браузер ничего не отобразит.
А ты говоришь "ни к чему" :)
http-заголовки формируют все, кому не лень, по пути от скрипта до пользователя11.06.08 13:24 Автор: dl <Dmitry Leonov>
> > Сам сервер (например Apache) не формирует заголовки > > страниц. Ему это ни к чему. Веб программист сам должен > > заботиться о формировании нужных полей в заголовке > > страницы. > > Есть у меня php5 и mantis. Так вот эта связка выдает > Status: 200 OK (как пример). > Если мой web server сам не проставит HTTP/1.0 200 OK, > проанализировав то что ему вернул cgi, то браузер ничего не > отобразит. > А ты говоришь "ни к чему" :) Похоже тут возникло непонимание. Заголовок страницы как тэг <HEAD></HEAD> и HTTP-заголовок :)
В принципе, ничто не препятствует появлению нескольких одноименных заголовков - хотя, конечно, это не очень нормально. "duplicated http response headers" в гугле в основном проходит по части багов скриптов.