日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

http协议以及防盗链技术

發(fā)布時間:2023/12/2 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 http协议以及防盗链技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  http協(xié)議,又稱為超文本傳輸協(xié)議,顧名思義,http協(xié)議不僅能傳輸文本,還能傳輸圖片,視頻,壓縮包等文件,http協(xié)議是建立在tcp/ip協(xié)議的基礎(chǔ)之上的,http協(xié)議對php程序員來講可以說是重中之重了;

  http請求基本結(jié)構(gòu)分為:請求行;消息頭;實體內(nèi)容;

  請求行:

    GET/xxx/xxx.html? HTTP/1.1? ? ? ? ? //HTTP/1.1是http協(xié)議版本,1.1支持長連接,1.0支持短連接,目前普遍使用1.1版本;

  消息頭(請求報頭):

    Accept:*/*? ? ? ? ?//表示客戶端可接受什么類型的資源,*表示通配符,表示可以接受任何類型的資源;

    Referer : http://localhost:80/XX.html? ? ? ? //表示用戶是從哪里鏈接過來的(之后防盜鏈技術(shù)會詳解);

    Accept-Launguage: zh-cn? ? ? ? ? ? ? ? ?//表示頁面可以支持哪種語言;

    User-Agent: Mozila/4.0? ? ? ? ? ? ? ? ? ? //表示瀏覽器的內(nèi)核以及操作系統(tǒng);

    Accept-Encoding:gzip,deflate? ? //表示客戶端支持什么類型的數(shù)據(jù)壓縮格式;

    Host:localhost:80? ? ? ? ? ? ? ? ? ? ? ?//表示主機號和端口,這個是給tcp/ip協(xié)議識別的;

    Connection:Keep-Alive? ? ? ? ? ? ? ? //表示長連接,不會立刻中斷請求;

  實體內(nèi)容? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//表示客戶端向服務器傳遞了哪些資源;

?

  http響應內(nèi)容:

    HTTP/ 1.1? 200? OK      //200表示服務器請求成功;其余常見的狀態(tài)碼在后面說;

    Server:          //表示服務器信息;

    Date:            //瀏覽器請求該頁面的時間;

    Content-Length:? ? ? ? ? ? ? ? ? ? ? ? ? //表示服務器回送了多少字節(jié)的資源;

    Content-Type:? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//文檔類型及使用什么編碼;

    Last-Modified:         //所請求的資源最新更新時間;

    Refresh:1;url=http:xxx.com    //間隔多少秒之后重定向;可在header()函數(shù)中寫入實現(xiàn)X秒后重定向頁面;

    Content-Disposition:        //這個關(guān)于文件下載;

    Transfer-Encoding:         //文件下載

    Set-Cookie:            

    Keep-Alive:timeout=5,max=99? ? //表示長連接可維持多少秒;

    Expires: -1 ;?            //控制頁面是否支持緩存;瀏覽器默認支持緩存,在header函數(shù)中輸入以下三個頭信息;

    Cache-Control: no-cache ;?      //緩存存在的時間是可以自行指定的;

    Pragma:? no-cache ;         //控制頁面是否支持緩存;

  http響應的狀態(tài)碼詳解可以點擊下面鏈接查閱:https://baike.baidu.com/item/HTTP狀態(tài)碼/5053660?fr=aladdin

  常用的有302,304,202,404狀態(tài)碼:302狀態(tài)碼一般用于做重定向;404狀態(tài)碼通常是所查找的資源不存在;304碼一般在當http發(fā)送請求資源時發(fā)現(xiàn)緩存中有相同資源,瀏覽器則會向服務器端發(fā)送一個(Last-Modified:)該資源最近更新的時間參數(shù),由服務器去驗證該資源的最近更新時間是否一致,如一致說明該資源沒有進行更新則向緩存取出該資源;

  在PHP中你可以通過 echo? $_SERVER? ?來獲取所有關(guān)于該頁面HTTP協(xié)議的所有內(nèi)容;

  常用的有:

    HTTP_HOST      //主機名;

    DOCUMENT_ROOT    //獲取apche的主目錄;

    REQUEST_URI    //獲取請求的資源名;

    REMOVE_ADDR    //獲取當前訪問客戶端的IP地址;

    HTTP_REFERER? ? ? ? ? ? //告訴服務器我是從哪個頁面鏈接過來的;

      用法:? $_SERVER[ ' REMOVE_ADDR ' ] ;

  可以使用header()語句向http響應頭寫入信息;

  http的請求方式有兩種,GET請求和POST請求;從安全性而言,GET請求會顯示在地址欄上,相比POST而言更不安全;GET請求處理速度更快,但是只可以處理2K以內(nèi)的數(shù)據(jù),多數(shù)用于查數(shù)據(jù),而POST雖相對較慢但不限制資源大小,多數(shù)用于增、刪、改;

    $_GET :可傳輸多個參數(shù),eg:http://xxx/xxx.php?字段名=參數(shù)&字段名=參數(shù);使用empty($_GET('字段名'))驗證是否接收到參數(shù);

    $_POST :用于傳遞數(shù)據(jù),多數(shù)用于增刪改;在php.ini文件中關(guān)閉register_globals設(shè)置,防止SQL注入;

  簡單的防盜鏈技術(shù):

    if( isset ( $_SERVER[ ' HTTP_REFERER' ] ) ){          //這條語句判斷HTTP協(xié)議里是否有REFERER值;

        if( strpos ( $SERVER[ ' HTTP_REFERER' ] ,“ http://頁面主址 ” ) == 0?){   //這條語句判斷REFERER值是否從本網(wǎng)站鏈接進來;

            echo? ?顯示信息? ;

        }else{

            header( " Location:? 警告頁面 " );      //如進入else語句則說明該用戶是盜鏈過來的,跳轉(zhuǎn)到警告頁面;

        }

    }else{

      header( " Location:? 警告頁面 " );

    }

    

  


更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com

總結(jié)

以上是生活随笔為你收集整理的http协议以及防盗链技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。