PHP HTTP协议(报头/状态码/缓存)
一、HTTP协议介绍
1、 #HTTP协议
# (1 建立在TCP/IP协议基础上
# (2 web开发数据传输依赖于http协议
# (3 http 协议全称是文本传输协议
2、HTTP报文报头
GET/test/test.php HTTP/1.1
//表示发送的get请求资源
Accept:* / *
Referer:http://localhost:8082/test.php
Accetp-Language:zh-cn// 页面语言
User-Agent:Mozilla/4.0 //浏览器内核和操作系统
Accept-Encoding:gzip,deflate//数据压缩格式
Host:localhost:80 //主机,默认80
Connection:Keep-Alive //保持连接,不立即断开请求
//获取信息
print_r($_SERVER);//查看所有的信息
foreach($_SERVER as $key=>$val)
{
echo $key."->".$val."<br/>";
}
echo "你的IP是:".$_SERVER['REMOTE_ADDR'];
if($_SERVER=="IP地址")
{ header("location: err.php"); }
3、get/post区别
(1、安全性:get请求的数据会显示在地址栏上,post请求的数据放在http的消息体 post安全性高
(2、提交数据大小:(http本身无限制大小,是浏览器限制) get请求数据是2K+35=2083 post的则没有限制
(3、get更有利于收藏夹,get会把URL的参数都收录,而post不会
4、HTTP状态码
HTTP/1.1 200OK [200 ok表示请求客户端成功]
Server:Microsoft-IIS/5.0 [告诉浏览器 服务器情况]
Date:Thu,12,2013 12:58:21 GMT [请求的页面当前时间]
Last-Modified:... [缓存最新更新时间]
Content-Length :2291 [ 返回的字节数]
Content-Type:text/htm [文档类型]
Cache-control:private [缓存]
302:跳转到其他页面
304:缓存 ;No Modified没有修改过
5、通过HTTP,间隔时间响应
<?php
//header("Refresh:5; url=www.cnblogs.com/daomul");
header("Refresh:5 ; url=htt[://locahost:8082/test.php");
?>
6、禁用缓存设置
header("Ecpires: -1");
header("Cache-control:no-cache");
header("Pragma :no-cache");
//每次取得都是最新的,以上三个同时用,保证浏览器兼容性