《PHP的HTTP协议视频教程》将带领大家学习PHP中的HTTP协议,掌握http交互请求,例如post、和get请求,并用代码方式实现常见的post、get请求,以及防盗链、反向Ajax等高级应用。
课程播放地址:http://www.php.cn/course/411.html
该老师讲课风格:
教师讲课生动形象,机智诙谐,妙语连珠,动人心弦。一个生动形象的比喻,犹如画龙点睛,给学生开启智慧之门;一种恰如其分的幽默,引来学生会心的微笑,如饮一杯甘醇的美酒,给人以回味和留恋;哲人的警句、文化的箴言不时穿插于讲述中间,给人以思考和警醒。
本视频中较为难点是http防盗链了:
使用HTTP协议。利用referer做防盗链(不需要用PHP编写,而是在服务器层面控制就OK了)
我们在网页里访问站外的图片的时候,在图片本站是可以看得,在外头就不能看了
因为header信息中的referer元素。
还有是做统计的时候,
我们能够统计出来用户是从哪个地方,什么时间访问网站的。比如腾讯分析网站
统计的时候是靠什么知道用户从什么地方去的网站
在HTTP协议中 头信息中有一个很重要的选项 referer
referer 表示的是网页的来源以及上一页的地址
如果直接在浏览器输入地址,进入网站,则没有referer头信息
所以,服务器可根据referer来知道用户从哪个网站进来的和图片是从哪个网站进来的
利用referer头信息来设置防盗链的具体操作步骤如下:
/** 如何配置apache服务器。用于图片防盗链(使用url重写) 在web服务器层面,我们可以在http协议的referer头信息来判断, 如果来自站外,则统一重写到一个很小的防盗链提醒图片上去 步骤: 1.打开 apache 重写模块 mod_rewrite (D:\wamp\bin\apache\apache2.4.9\conf) #LoadModule rewrite_module modules/mod_rewrite.so 把#去掉,重启apache 2.在需要防盗的网站或者目录下,写 .htaccess 文件(windows下不能直接创建,可以另存) 并指定防盗链规则 分析referer信息,如果不是来自本站,则重写 **/ 重写规则 .htaccess 文件 1.哪种情况重写规则 是jpeg/gif/png图片的时候 是referer头与localhost不匹配的时候 2.怎么重写 统一 rewrite 到某个防盗链图片上 RewriteEngine On //只是在改页面下生效 Rewrite Base /HTTPxieyi/day1 //会对以下格式的文件进行重写规则 RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC] //如果不是来自localhost的用户,会重写 RewriteCond %{HTTP_REFERER} !localhost [NC] //会重写到自学it网的logo上 RewriteRule .* http://www.zixue.it/static/image/common/zixuelogo.png
html的具体代码如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片的防盗链</title> </head> <body> <p> <img src="http://imgsrc.baidu.com/forum/w%3D580%3B/sign=5547962a02d162d985ee621421e4a8ec/0d338744ebf81a4c06403427df2a6059242da6ea.jpg" alt=""> <img src="./bb.jpg" alt=""> <img src="./aa.jpg" alt=""> </p> </body> </html>
反防盗链的具体代码如下:
<?php /** 反防盗链 ****/ require('./07.class.php'); $http = new Http('http://localhost/HTTPxieyi/day1/bb.jpg'); //如果没有加以下这句话,就会显示盗链 //加上referer就会告诉浏览器,我是来自localhost的,不是来自其他网站的,你不用防我 $http->setHeader('Referer: http://localhost'); $res = $http->get(); //aaa.显示的倒链 //file_put_contents('./aaa.jpg',substr(strstr($res,"\r\n\r\n"),4)); file_put_contents('./bbb.jpg',substr(strstr($res,"\r\n\r\n"),4)); //应该在判断路径或者response的mime头信息,确定图片的类型
Atas ialah kandungan terperinci php的http协议视频资源的推荐. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!