利用PHP生成的圖片無法使用CDN緩存如何解決-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)利用PHP生成的圖片無法使用CDN緩存如何解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為曲水企業(yè)提供專業(yè)的成都網(wǎng)站制作、做網(wǎng)站,曲水網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

HTTP的原理是這樣的,每次請(qǐng)求到服務(wù)器后,服務(wù)端檢測有沒有修改,如沒有修改,可以直接返回一個(gè)304的狀態(tài)碼,這樣就用客戶端的緩存了,CDN的原理就是如此,如果設(shè)置了304,就會(huì)將相應(yīng)的URL進(jìn)行緩存起來;


相關(guān)代碼如下:


復(fù)制代碼 代碼如下:


//檢測有沒改變
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])){
    $etag = $_SERVER['HTTP_IF_NONE_MATCH'];
    if (md5($this->image) === $etag){
        header("HTTP/1.1 304 Not Modified");
        exit;
    }
}

header("Last-Modified: " . gmdate("D, d M Y H:i:s", strtotime('2011-1-1'))." GMT");
//輸出etag頭
header('etag:' . md5($this->image));
header('Cache-Control:max-age=2592000');echo $this->image;


其中http頭HTTP_IF_NONE_MATCH,一般是服務(wù)器返回的對(duì)某一URL的標(biāo)識(shí),一般用MD5計(jì)算,這樣我們檢測MD5值對(duì)不對(duì),相同就可以返回304了;

PS:

剛開始抓了半天包,只看到服務(wù)端返回的Etag標(biāo)簽,沒看到客戶端的http頭中If-None-Match,害得在fastcgi.conf.default 中加入如下代碼:


復(fù)制代碼 代碼如下:


fastcgi_param  CACHE_ETAG    $http_if_none_match;



一打印$_SERVER,根本就沒有CACHE_ETAG這個(gè)變量,看來nginx都會(huì)將相關(guān)的HTTP頭放到$_SERVER變量中,也加深了http協(xié)議的了解

上述就是小編為大家分享的利用PHP生成的圖片無法使用CDN緩存如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱:利用PHP生成的圖片無法使用CDN緩存如何解決-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://bm7419.com/article40/ddhhho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站收錄、做網(wǎng)站、微信公眾號(hào)、電子商務(wù)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)