一、一个完整的http响应报文:
Location:http://www.baidu.org/index.php
Server:apache
Content-Encoding:gzip //内容编码支持的压缩算法:gzip
Content-Length:80 //返回数据的大小
Content-Language:zh-cn
Content-Type:text/html;charset=GB2312
Last-Modified:Tue,11 Jul 2000 18:23:51 GMT //浏览器请求的最新时间
Refresh:1;url=http://www.baidu.com //告诉浏览器间隔1秒重定向到百度去
Content-Disposition:attachment;filename=aaa.zip
Transfer-Encoding:chunked
Set-Cookie-SS=Q0=5Lb_nQ;path=/search
Expires:-1 .//控制不缓存该页面(以下两句作用相同,只是为了解决浏览器兼容问题
Cache-Control:no-cache
Pragma:no-cache
Connection:close/Keep-Alive
Date:Tue,11 Jul 2000 18:223:52 GMT
二、实例:如何通过http响应,控制浏览器的跳转间隔时间(3秒)
<?php
header("Refresh:3;url:http:www.sohu.com");
?>
三、实例:网页默认缓存,此处禁用网页的缓存机制
<?php
//通过 header 禁用缓存
header("Expires:-1");
header("Chche-Control:no_cache");
header("Pragma:no_cache");
echo "Hello,chche";
?>
四、实例:http实际应用之文件下载
<?php
//演示下载一个文件
//如果文件是中文的,则会出现乱码,必须使用iconv("utf-8", "gb2312", $file_name);函数将编码格式转为gb2312
$file_name = "Sunset.jpg";
$file_name = iconv("utf-8", "gb2312", $file_name);
//1、打开文件
if(!file_exists($file_name)) {
echo "文件不存在";
return;
}
$fp = fopen($file_name, "r")
//获取文件大小
$file_size = filesize($file_name);
//下载文件所需的头部
header("Content-type: application/octet-stream"); //返回的文件
header("Accept-Ranges: bytes"); //以字节方式返回
header("Accept-Length: $file_size"); //返回文件的大小
header("Content-Disposition: attachment; filename=''.$file_name"); //客户端的对话框弹出的文件名
//向客户端回送数据
$buffer=1024;
$file_count = 0; //为了下载安全,做的文件字节读取计数器
while(!feof($fp) && ($file_size - $file_count >0)) { //判断文件是否结束
$file_data = fread($fp, $buffer); //把部分数据回送给浏览器
$file_count += $buffer; //
echo $file_data;
}
//关闭文件
fclose($fp);
?>