使用CGI时是否可以转发请求?

时间:2009-10-08 18:00:12

标签: web-services jsp cgi forwarding

我正在编写一个小型内容服务器作为Web服务。有2个单元 - 一个验证请求内容的应用程序,当验证成功时,请求被转发到提供内容的另一个单元。

  • [1]如果我想用CGI做这件事 脚本,有没有相当的 CGI中的 jsp:forward
  • [2]假设是 转发是不可能的, 客户端应用程序不应该 直接请求第二个单位。 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

另一次尝试,因为你不是在HTTP重定向之后......

简短的回答是:是的,这是可能的。

但是,它高度依赖于您使用的工具。您使用的是什么Web服务器和CGI脚本语言?

CGI脚本几乎可以做任何他们想做的事情,例如他们可以从其他CGI脚本执行代码。因此,他们可以提供您正在寻找的行为。

CGI (Common Gateway Interface)仅描述了Web服务器如何启动CGI脚本并通过环境变量提供脚本输入数据。 CGI还描述了脚本如何将数据返回给Web服务器。就这样。

因此,如果您的授权脚本想要将某些操作委托给其他某些脚本,则由该授权脚本以某种方式实现它。 CGI协议在这里没有帮助。

答案 1 :(得分:0)

您可能正在寻找的概念称为HTTP redirect,其中服务器发送对浏览器请求的响应,告知浏览器从另一个URL获取新页面。

CGI可以像 jsp:forward 一样完成HTTP重定向。您只需要输出正确的HTTP标头。

您需要在HTTP标头中返回302响应代码,并提供下一步浏览器的位置URL。让您的CGI脚本输出这些标题:

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

这些标题告诉浏览器从网址http://www.example.org/获取网页。