(23) PHP 随笔---http协议 http详解
◇http协议(超文本传输协议):
◇1、http协议是建立在tcp/ip 协议基础上。
◇2、我们的web开发数据的传输都是依赖此http协议。
◇http有1.0版本(短连接) 有1.1版本(长连接)
◇http结构:1、请求头 2、消息头 3、消息体(实体内容)
◇消息头结构如下:
◇Refresh:表示“我是从哪里来的”
◇Accept-Language:zh-cn :页面语言
◇User-Agent: 告诉服务器我的浏览器内核,操作系统
◇Accept-Encoding:表示接受什么样的数据压缩格式
◇Host:主机和端口号
◇Connection:表示不要立即断开我们的请求
◇在服务端,我们可以通过$_SERVER来获取我们想要的信息
◇REMOTE_ADDR 访问该页面的ip
◇DOCUMENT_ROOT 可以获取apache的主目录
◇REQUEST_URL 可以获取请求的资源名
◇http请求方式 : GET 和 POST 两种主要的方式
◇get和post区别;
◇相同:作用都是向服务器发送数据。
◇不同点:
◇1、安全性:get请求的数据会显示在地址栏上,post请求的数据会放在http协议中的消息体中。
◇2、从可提交的数据的大小上来看:
◇2.1、http协议本身并没有限制数据的大小
◇2.2、主要是浏览器在对get和post请求做限制
◇3、get的优点:更利于用户将网站收藏至收藏夹:(收藏网页地址)
◇防盗链技术:REFERER:确定用户进入当前页面的上次个页面的url,以便程序员封杀从外面网站定向到该页面的用户。
1 if(isset($_SERVER)['HTTP_REFERER']) 2 { 3 if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/")==0) //判断$_SERVER['HTTP_REFERER']是不是以http://localhost/打头的,strpos函数用来确定从第几个字符开始出现重复的 4 5 echo "你有权进入该页面"; 6 }
◇请求头描述了客户端向服务器发送请求时使用的http协议类型,所用的编码,以及发送内容的长度,refer等等。
◇响应头是用来描述服务器回给你对所返回的content的一些一些描述,我是什么服务器,我返回的是啥编码,我返回的内容有多长。
◇响应头实体信息:
◇HTTP/1.1 200 OK 1.1 表示长连接 200 ok 表示客户端请求成功
◇302状态码:告诉浏览器区别的url找(转向,或者重定向)
◇304状态码:如果缓存中有该资源,则从缓存中调用(告诉浏览器,资源没有修改,无需再获取)
◇404状态码:页面不存在
◇Server:Mirosoft-IIS/5.0 告诉浏览器 服务器的情况
◇Refresh:3 表示延迟3秒再进行重定向
1 <?php
2 header("Refresh:3;url=http://localhost/http/d.php");
3 ?>
◇Last-Modified: 表示浏览器请求资源最新时间。
◇通过header来禁用缓存:
1 <?php
2 head("Expires:-1");
3 head("Cache-Control:no_cache");
4 head("Pragma:no-cache");
5 ?>