Возможна ли пересылка запросов при использовании CGI? - PullRequest
0 голосов
/ 08 октября 2009

Я пишу небольшой контент-сервер как веб-сервис. Есть 2 блока - один аутентифицирует приложение, запрашивающее контент, и когда аутентификация проходит успешно, запрос перенаправляется другому блоку, который обслуживает контент.

  • [1] Если я хочу сделать это с помощью CGI сценарии, есть ли эквивалент jsp: вперед в CGI?
  • [2] Предположим, если пересылка невозможна, клиентское приложение не должно быть в состоянии запросить второй блок напрямую. Как правильно это сделать?

Ответы [ 2 ]

2 голосов
/ 09 октября 2009

Еще одна попытка, поскольку вы не после перенаправления HTTP ...

Краткий ответ: да, это возможно.

Однако это сильно зависит от инструментов, которые вы используете. Какой веб-сервер и язык сценариев CGI вы используете?

CGI-скрипты могут делать практически все, что хотят, например, они могут выполнять код из других CGI-скриптов. Таким образом, они могут обеспечить поведение, которое вы ищете.

CGI (Common Gateway Interface) просто описывает, как веб-сервер запускает сценарий CGI и предоставляет входные данные сценария через переменные среды. CGI также описывает, как скрипт возвращает данные на веб-сервер. Это все.

Так что, если ваш сценарий авторизации хочет делегировать какую-то операцию другому сценарию, то этот сценарий авторизации должен каким-то образом его реализовать. Протокол CGI здесь не помогает.

0 голосов
/ 08 октября 2009

Концепция, которую вы, возможно, ищете, называется HTTP redirect , где сервер отправляет ответ на запрос браузера, сообщая браузеру, что нужно извлечь новую страницу с другого URL.

CGI может выполнять перенаправления HTTP точно так же, как jsp: forward . Вам нужно просто вывести правильные заголовки HTTP.

Вам необходимо вернуть код ответа 302 в заголовках HTTP и указать URL-адрес местоположения, по которому браузер должен идти дальше. Пусть ваш CGI-скрипт выведет такие заголовки:

HTTP/1.1 302 Redirect
Location: http://www.example.org/

Эти заголовки сообщают браузеру, что нужно извлечь страницу с URL http://www.example.org/.

...