《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头信息,确定图片的类型
以上是php的http協定影片資源的推薦的詳細內容。更多資訊請關注PHP中文網其他相關文章!