怎样发回文档给客户端对于CGI的初学者,一个公共的错误是没有正确格式化输出,这样服务器不能解释它。CGI程序可以返回各种文件类型。它们可以返回给客户端一张图片、HTML文档、明文文档或者可能是一个音频夹。它们同样可能返回其它文档给引用。客户端必须知道哪种类型的文档你要发送,这样它就可以相应 |
|
如果不输出文档,你可以只通知浏览器哪儿可以得到这个新文档或者让服务器自动为你输出新的文档。
比如,假如你想从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.html
这时服务器就会认为客户端没有请求你的脚本,而是请求http://yourserver/dir1/dir2/myfile.html。你要注意文件类型以及数据头对不对。
如果你想引用一个受到访问验证保护的文档,你就不得不键如完整的URL,因为客户端和服务器需要重新处理来建立你访问引用文档的连接。
|