先看一个常见的cgi输出的例子:
#!/usr/bin/perl
print"content-type:text/htmlnn";
print"<html><body>";
print"<h1>xyz</h1>";
print"</body></html>";
当我们在提交一份表单按下提交的按钮时,通常都会切换到一个新的页面。所以要想提交后保留在原有页面的内容的话,惯用的方法是重新连接回刚才提交的url,但是有时切换页面需要保存一些中间的数据,为编写代码带来很多麻烦,而且为web服务器带来不少负担; 所以有时我们并不希望切换页面,其实我们可以利用向浏览器发送一个204响应头令到不切换页面。
例子:
status204.html
<html><body>
<form method=post action=/cgi-bin/status204.cgi>
<input type=submit name=submit value="test">
</form></body></html>
status204.cgi
#!/usr/bin/perl
open(wf,">xyz.txt");
print wf "test 2000";
close(wf);
print "status: 204 no content";
在浏览器上提交上述的cgi程序,页面不会有切换,检查一下 cgi-bin 目录,会发现新生成一个名为: xyz.txt 文件。