[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 编程技术 > 其它 > 正文
CGI与WEB服务器的响应头
本文出自:http://www.01-world.com 作者: (2001-08-22 10:00:00)



我们知道 CGI 除了文本外还可以输出其他不同的资料例如图片、声音等数据流,为了让
WEBSEVER能辨认不同的数据型态,所以CGI 的输出包括两部分,前面的是相应头告诉
Server要输出的信息属于何种MIME类型,后面才是我们要输出的数据;具体上响应头与
输出正文、响应头与响应头之间是用两个空行作为分隔的,通常大部分的CGI程序都会有
一行 print "Content-type: text/html\n\n"; 下面跟着才是要输出的信息。这个响应
头地意思是告诉Server要输出的信息的MIME类型是文本/超文本。如果你是要输出的是一
张图片的print "Content-Type: image/gif\n\n"; 跟着是图片的数据流就可以了。

当然响应头的作用不仅仅是这些,利用响应头我们在编写CGI时大有文章可作,下面有几
个重要的响应头是在我们写程序时也是很有用的:

print "Pragma:no-cache\n\n";
这个响应头是通知浏览器不要把该页面保存在缓冲区中

print "Location: URL"
返回一个指定的URL,有时如果你想让程序动态得返回一个URL给来访者就得用到这个响应
头,但每次只能返回一个URL,举个应用的例子,当你主页访问量较大而想减轻服务器的
负担,那么可以建立多个镜像站点,通过CGI随机发送镜像站点的URL从而减轻服务器的负担。

print "Set-Cookie:name1=value;name2=value2;exprires=DATE;PATH=PATH;domiam=DOMAIN_NAME;SECURE\n";
CGI这个响应头就是利用这个响应头在来访者的计算机上设置Cookie的,如果你想知道如何
具体用CGI在来访者的计算机上设置Cookie那么请看本站的关于CGI读写COOKIE的编程。

如果CGI程式所送出的结果不希望经过 Server 的 包 装,而希望直接送到客户端的浏览器,
则CGI必须负责送出完整的超本文传输协定(HTTP)讯息 封包(Message Packaged)。当Server
收到CGI程式输出的结果时,会先检查是否有 "HTTP/1.0" 的讯 息。如果有则Server会认为
以下的讯息已 经包 含 了完整的超本文传输协定(HTTP)回应,并将其直接送至客户端的浏
览程式(Browser)。以下是一简短的范例 ∶ 

print "HTTP/1.0 200 OK\n"
print "Date: Tuesday, 31-May-94 19:04:30 GMT\n";
print "erver: WebSite 2.0\n";
print "MIME-version: 1.0\n"
print "Content-type: text/html";
print "Last-modified: Sunday, 15-May-94 02:12:32 GMT\n";
print "Content-length: 4109\n\n";
print " ";
print "范 例 文 件";



为了让WEBSERVER知道不必为CGI生成响应头,CGI程序的文件明必须有前缀 "HPH-" 或 "nph-",
例如nph-mycgi.cgi

Status: 说明CGI执行的况状,其值必须是超本文传输协定(HTTP)所认可的。 
(http://www.fanqiang.com)
    进入【UNIX论坛

相关文章
CGI与WEB服务器的响应头 (2001-08-22 10:00:00)
响应头204的应用 (2001-08-22 09:00:01)
 

★  樊强制作 欢迎分享  ★