万卷书   首页 > 电脑书籍 > Perl/CGI > CGI教程(3)怎样发回文档给客户端
 
如果不输出文档,你可以只通知浏览器哪儿可以得到这个新文档或者让服务器自动为你输出新的文档。

比如,假如你想从Gopher服务器中引用一个文件。折中情况,你应该知道你想引用和输出的完整的URL,代码如下:

Content-type: text/html

Location: gopher://httprules.foobar.org/0


<HTML><HEAD>


<TITLE>Sorry...it moved</TITLE>


</HEAD><BODY>


<H1>Go to gopher instead</H1>


Now available at


<A HREF="gopher://httprules.foobar.org/0">a new location</A>


on our gopher server.


</BODY></HTML>



但是,现在的浏览器很是聪明,它会自动将新文档显示给你而不会看到上面的内容。如果不想输出上面的HTML,NCSA HTTPd会为你输出一个缺省的文档来支持旧的浏览器。

如果你想引用你自己服务器上另外文件(没有受到返回验证的保护),你不必做太多的工作,而只需要输出一个不完全的URL,代码如下:

Location: /dir1/dir2/myfile.htm

这时服务器就会认为客户端没有请求你的脚本,而是请求http://yourserver/dir1/dir2/myfile.htm。你要注意文件类型以及数据头对不对。

如果你想引用一个受到访问验证保护的文档,你就不得不键如完整的URL,因为客户端和服务器需要重新处理来建立你访问引用文档的连接。

上一页