Здравствуйте, Ovoshlook, Вы писали:
O>Добрый день. подскажите методологию вызова FastCGI скрипта при загрузке HTML страницы.
1. Непонятно, что именно вы пытаетесь сделать. Зачем вам вызывать FastCGI скрипт при загрузке страницы? O>Сейчас пытался сделать через
O>
Этот способ редиректа не рекомендуется уже несколько лет. Кроме того, непонятен использованный вами content. В известных мне сценариях первым параметром идёт целое число — количество секунд перед рефрешем.
O>Но в errors.log apache2 Incomplete headers. Хотя referer стоит той страницы с которой я посылаю redirect. сама страница вполне стандартного вида
Вы уже посмотрели детальный трафик между клиентом и сервером при помощи, скажем, http://fiddlertool.com/ ?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
S>Этот способ редиректа не рекомендуется уже несколько лет. Кроме того, непонятен использованный вами content. В известных мне сценариях первым параметром идёт целое число — количество секунд перед рефрешем.
Я только разбираюсь с web и fastCGI использую те способы которые нахожу. не знал что редирект уже не актуален. Я бы и сам не хотел его использовать если бы знал как правильно загрузить часть страницы через fastCGI. На просторах интернета нашел способ через SSI директиву <!--#exec cgi=/path/to/cgi--> Только вот ни как не могу найти можно ли это выполнить через URL (так как fastCGI прилдожение у меня весит на порту и слушает сеть).
Если есть полезная литература или ссылки почитать на тему вывода контента при загрузке страницы через fastCGI буду признателен.
По поводу content — вместо seconds ставится время в секундах соответсвенно.
S>Вы уже посмотрели детальный трафик между клиентом и сервером при помощи, скажем, http://fiddlertool.com/ ?
O>При загрузке страницы должен производиться запрос в базу данных и их вывод.
Может лучше JS скриптом? При загрузке запускается JS функция,
которая запрашивает документ. Более гибко в плане выбора
формата документа и способов егоjобработки и размещения на странице.
Здравствуйте, smeeld, Вы писали:
S>Может лучше JS скриптом? При загрузке запускается JS функция, S>которая запрашивает документ. Более гибко в плане выбора S>формата документа и способов егоjобработки и размещения на странице.
Мне просто более интересен механизм вывода через fastCGI. Так то я и на php могу сделать.
Здравствуйте, Ovoshlook, Вы писали:
O>Мне просто более интересен механизм вывода через fastCGI. Так то я и на php могу сделать.
Веб сервер получет запрос и по урлу отдаёт его модулю
хендлеру, например, mod_fastsgi в apache, хендлер запускает скрипт, или передаёт какому демону как
в случае с fastSGI. Скрипт или демон отдают результаты модулю, тот-веб серверу.
smeeld, Вы писали:
S>Веб сервер получет запрос и по урлу отдаёт его модулю S>хендлеру, например, mod_fastsgi в apache, хендлер запускает скрипт, или передаёт какому демону как S>в случае с fastSGI. Скрипт или демон отдают результаты модулю, тот-веб серверу.
Вот... А как сказать серверу что именно c этой странице запрос нужно обработать через fastCGI?
Как я понимаю -где то в html странице должна быть ссылка/директива/тэг/ или тому подобное?
Здравствуйте, Ovoshlook, Вы писали:
O>Вот... А как сказать серверу что именно c этой странице запрос нужно обработать через fastCGI? O>Как я понимаю -где то в html странице должна быть ссылка/директива/тэг/ или тому подобное?
Это веб сервер настраивается. Например, apache
Либо
FastCgiServer /path_to_fastcgi_script- запускается поток c скриптом для обработки каждого соединения.
или FastCgiExternalServer /path_exec -host 127.0.0.1:port запускается демон и ждёт обращений.
<Directory ...>
SetHandler fastcgi-script передача ... в обработку fastcgi.
Для каждого ЯП своя специфика, баловался с fastcgi + C++.
Здравствуйте, smeeld, Вы писали:
S>Здравствуйте, Ovoshlook, Вы писали:
O>>Вот... А как сказать серверу что именно c этой странице запрос нужно обработать через fastCGI? O>>Как я понимаю -где то в html странице должна быть ссылка/директива/тэг/ или тому подобное?
S>Это веб сервер настраивается. Например, apache S> Либо
S>FastCgiServer /path_to_fastcgi_script- запускается поток c скриптом для обработки каждого соединения.
S>или FastCgiExternalServer /path_exec -host 127.0.0.1:port запускается демон и ждёт обращений.
S><Directory ...>
S>SetHandler fastcgi-script передача ... в обработку fastcgi.
S>Для каждого ЯП своя специфика, баловался с fastcgi + C++.
Да. У меня именно так и работает. И POST запросы от нужных мне страниц сервер вполне себе обрабатывает. У метя сам вопрос возникает в том чтобы не кнопкой запускать скрипт или ссылкой, а именно при загрузке страницы.
Ну то есть в пост запросе я делаю вот так:
то есть при нажатии на submit у меня POST улетает на EternalCgiServer на порт 9001
Проблема в том чтобы обратиться на страничку скажем users.html и при ее открытии через fastCGI генерилось ее содержимое. Вот. как вариант конечно прописать в .htacceess но как мне кажется это не самый правильный путь.
Здравствуйте, Ovoshlook, Вы писали: O>При загрузке страницы должен производиться запрос в базу данных и их вывод.
Почему сразу не отправить пользователя на адрес fastCGI — хэндлера?
Зачем вам какая-то ещё страница?
O>Если есть полезная литература или ссылки почитать на тему вывода контента при загрузке страницы через fastCGI буду признателен.
Такой литературы нет, т.к. никаких особенностей по выводу контента через fastCGI нету.
Со стороны клиента любой веб-сервер выглядит одинаково — что отдающий статический html файл, что php скрипт, что fastCGI.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ovoshlook, Вы писали:
S>>Может лучше JS скриптом? При загрузке запускается JS функция, S>>которая запрашивает документ. Более гибко в плане выбора S>>формата документа и способов егоjобработки и размещения на странице.
O>Мне просто более интересен механизм вывода через fastCGI. Так то я и на php могу сделать.
Я не понимаю, почему вы противопоставляете fastCGI и javascript. Первый — на сервере, второй — на клиенте.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ovoshlook, Вы писали: O>Да. У меня именно так и работает. И POST запросы от нужных мне страниц сервер вполне себе обрабатывает. У метя сам вопрос возникает в том чтобы не кнопкой запускать скрипт или ссылкой, а именно при загрузке страницы.
Загружайте сразу страницу http://192.168.0.1/ngn
O>Ну то есть в пост запросе я делаю вот так: O>
O>то есть при нажатии на submit у меня POST улетает на EternalCgiServer на порт 9001
Это вряд ли — в вашем action порт не указан, поэтому POST улетит на 80, а не на 9001. O>Проблема в том чтобы обратиться на страничку скажем users.html и при ее открытии через fastCGI генерилось ее содержимое. Вот. как вариант конечно прописать в .htacceess но как мне кажется это не самый правильный путь.
Правильность пути — понятие относительное. Например, если у клиента администраторы закрывают трафик по нестандартным портам, то он не сможет скачать ничего с 9001, и тогда .htaccess и mod-rewrite будут правильным ответом.
А вот если хочется обеспечить "видимость" одного и того же контента по разным адресам и иметь возможность всё кэшировать (что, понятно, само по себе потребует особенностей реализации вашего fastCGI хэндлера), то лучше запрашивать с клиента.
Вариантов сделать запрос с клиента — много.
Для начала стоило бы, наверное, отказаться от POST — ведь вы реализуете семантику GET.
Скорее всего, именно в этом и состоит ваша проблема — сервер ждёт POST, а редирект шлёт GET.
Когда вы это победите, сможете делать редирект хоть через .htaccess, хоть через javascript; сможете вставлять в страничку <iframe src="http://192.168.0.1/ngn"/>, сможете обращаться к хэндлеру через AJAX и так далее.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
О! я думал тема умерла) А она все еще актуальна как никогда) Спасибо за ответ.
S>Это вряд ли — в вашем action порт не указан, поэтому POST улетит на 80, а не на 9001.
Да. Запрос шлется на 80 порт apache который в свою очередь пересылает запрос к серверу fastCGI на порт 9001 который тот слушает.
S>Вариантов сделать запрос с клиента — много. S>Для начала стоило бы, наверное, отказаться от POST — ведь вы реализуете семантику GET. S>Скорее всего, именно в этом и состоит ваша проблема — сервер ждёт POST, а редирект шлёт GET.
Нет. У меня есть обработка POST запроса для формы которая использует POST метод, а есть отдельная обработка для GET метода. Так что сервер как бы шлет GET, только вот сваливается при его прохождении.
S>Когда вы это победите, сможете делать редирект хоть через .htaccess, хоть через javascript; сможете вставлять в страничку <iframe src="http://192.168.0.1/ngn"/>, сможете обращаться к хэндлеру через AJAX и так далее.
Вообще на http://192.168.0.1/ngn Я думал сделать, так как это вполне себе работает, и это даже проще, но по моей задумке скрипт должен парсить HTTP_REFERER в зависимости от того кто с какой страницы был передан запрос должен делать определенные действия. Как то так. Через .htaccess не пробовал забирать referer. Надо попробовать и понять бужет ли это работать. спасибо за наводку. Буду Вам признателен за подсказки еще каких ибо способов вохможной интерпретации моей задумки.