Username: Password:

CGI教程(3)怎样发回文档给客户端
来源:linux宝库作者:linux宝库 发布时间:2007-09-30 00:00:00


  怎样发回文档给客户端

  对于CGI的初学者,一个公共的错误是没有正确格式化输出,这样服务器不能解释他。

  CGI程式能够返回各种文档类型。他们能够返回给客户端一张图片、HTML文档、明文文档或可能是个音频夹。他们同样可能返回其他文档给引用。客户端必须知道哪种类型的文档您要发送,这样他就能够相应地将他显示出来。为了让客户端知道这个,CGI程式必须通知服务器哪种类型的文档将被返回。

  为了通知服务器哪种类型的文档您想送回,而不管这个文档是个完整的文档或一个引用,CGI需要您放置一个短的数据头到输出中。这个数据头是个ASCII文本,他包含了被linefeeds 或 carriage返回的行,其后还跟着一个空白行。

  在本例子中,您必须通过一个MIME类型通知服务器什么类型的文档您要输出。公共的MIME类型是一些比如html/text连同ASCII文本。

  比如,为了返回HTML给客户端,您的输出代码为:

  Content-type: text/html

  

  output of HTML from CGI script

  

  

Sample output



  What do you think of this?

  

  假如不输出文档,您能够只通知浏览器哪儿能够得到这个新文档或让服务器自动为您输出新的文档。

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

  Content-type: text/html

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

  

  Sorry...it moved

  

  

Go to gopher instead



  Now available at

  a new location

  on our gopher server.

  

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

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

  Location: /dir1/dir2/myfile.html

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

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

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅