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-talk] Re: [apache-talk] Re: [apache-talk] Во прос про subrequest-ы к знат окам Apache API



On Wed, 6 Feb 2002, Sergey Gershtein wrote:

> IS> On Wed, 6 Feb 2002, Sergey Gershtein wrote:
> 
> >> Возникла потребность сделать следующее. Модуль apache делает
> >> внутренний subrequest на заданный URI и предпринимает те или иные
> >> действия в зависимости от результата. Фокус в том, что этот самый
> >> subrequest обрабатывается чем-то внешним (например, cgi-скриптом).
> 
> ...
> 
> 6 февраля 2002 г. в 17:23 Игорь Сысоев писал:
> 
> IS> Стандартными средствами - никак. Но можно сделать, как делает mod_gzip -
> IS> перенаправить вывод во временный файл.
> 
> IS> Делаем ap_sub_req_lookup_uri(), дискриптор временного файла
> IS> записываем в sub_req->connection->client->fd, предварительно сохранив старое
> IS> значение. Выполняем ap_run_sub_req(). Востанавливаем старый дискриптор.
> 
> 
> Спасибо, это уже вариант! А если, скажем, я готов проигнорировать тело
> ответа, мне нужно лишь проанализировать его http-заголовки? В конце
> концов внешнему обработчику нет разницы, давать ответ в теле или в
> заголовках. Можно обойтись без временного файла?
> 
> Допустим я в sub_req->connection->client->fd загоняю дескриптор
> /dev/null, я смогу получить доступ к заголовкам ответа через
> ap_table_get(sub_req->headers_out,"xxx") ?  Этого было бы достаточно.

Можно. Насколько я понимаю, sub_req->headers_out должны оставаться
доступными до ap_destroy_sub_req().

> На самом деле таким экстравагантным способом модуль должен получить
> ответ (да/нет) от некоторого внешнего скрипта (cgi/php и т.п.).  Может
> быть есть другие более правильные подходы к организации подобного
> взаимодействия?

Можно попробовать установить sub_req->header_only = 1. В этом случае 
тело выводиться не будет, а заголовок для сабреквестов никогда не выводится.
mod_cgi header_only понимает. PHP по идее тоже должен, только я не знаю,
на уровне mod_php или же самого скрипта.

Игорь Сысоев

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






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

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