企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
响应的信息 ~~~ HTTP/1.1 200 OK /状态码 200请求成功 Date: Sun, 16 Oct 2016 06:49:21 GMT 【告诉浏览器,请求页面的时间】 Server: Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.3.29 【告诉浏览器,服务器的情况】 X-Powered-By: PHP/5.3.29 Content-Length: 145 【返回的内容长度】 Keep-Alive: timeout=5, max=98 Connection: Keep-Alive Content-Type: text/html 【文档类型】 ~~~ ## 状态码说明 100 接收成功 200 接收成功,完成整个过程 300 302 资源已经移动到新地址 400 客户端错误 500 服务器端错误 **要改变响应的头的内容,就在header里面写内容** header 可以向Http响应里面写东西,改变一个回应的头,状态码302 header("Location:新页面"); ~~~ HTTP/1.1 302 Found Date: Sun, 16 Oct 2016 08:24:55 GMT Server: Apache/2.4.10 (Win32) OpenSSL/0.9.8zb PHP/5.3.29 X-Powered-By: PHP/5.3.29 Location: index.php Content-Length: 22 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html ~~~ 看到location后,请求回到浏览器,跳转是从浏览器发生的 ![](https://box.kancloud.cn/335d7acc90eda6279c6674b78d5de809_711x450.png) 404该页面不存在 304资源没有修改,无需再存取 第二次打开页面,图片会从缓存里面取,所以图片的信息是304,服务器看到请求的资源的修改时间和实际资源的时间一致,就不会返回信息,而是从缓存中读取。 ~~~ HTTP/1.1 304 Not Modified Server: bfe/1.0.8.18 Date: Sun, 16 Oct 2016 08:50:21 GMT Connection: keep-alive ETag: "1ec5-502264e2ae4c0" Expires: Wed, 14 Oct 2026 08:50:21 GMT Cache-Control: max-age=315360000 ~~~ ![](https://box.kancloud.cn/861a16c3ccd2ecc185e2bd464f497030_605x338.png) ![](https://box.kancloud.cn/1c96f1b0f919cd332b1130d7949c06f8_580x151.png) ### 延时跳转 ~~~ header("Refresh:3;url=http://www.baidu.com"); ~~~ ## 禁用缓存设置 通过http响应控制页面缓存,默认情况浏览器会缓存页面,不同浏览器缓存时间不一样 ~~~ header("Expires:-1"); header("Cahce-Control:no_cache"); header("Pragma:no-cache"); echo "hello,cache"; ~~~ ## 文件下载 文件基本知识 文件类型: a. 文本文件——记事本里面的 b. 二进制文件 图片,视频,音频 步骤: 1. 判断文件是否存在 2. 打开文件 $fp=$fopen("a.txt","r+"); //r+读写方式,$fp是指向这个文件的指针 3. 打开方式 4. 读到内存里面 fread($fp); 5. 操作,添加,修改 6.关闭文件 fclose($fp); ![](https://box.kancloud.cn/99c3d6fe9e4b3f9c4bf747e18c350af2_653x487.png) **字符转码** `$file_name=iconv("utf-8","gb2312",$file_name);` ~~~ $file_name="a.jpg"; $file_name=iconv("utf-8","gb2312",$file_name); $file_path="../images/".$file_name; //1.打开文件 if(!file_exists($file_name)){ echo "文件不存在"; return; } $fp=fopen($file_name,"r"); //获取文件大小 $file_size=filesize($file_name); //下载文件需要的头header //返回的文件 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); ~~~