溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php header cache

發(fā)布時(shí)間:2020-05-31 06:52:45 來源:網(wǎng)絡(luò) 閱讀:379 作者:here2142 欄目:web開發(fā)

php header()中的cache有四種標(biāo)識頭:Last-Modified,Expires,Pragma: no-cache,Cache-Control。

以下的測試環(huán)境為谷歌瀏覽器,其余的未測試

  1. Last-Modified:在判斷緩存的時(shí)候,If-Modified-Since會將此值發(fā)送給服務(wù)器

  2. Expires:后面的日期用于標(biāo)識緩存在什么時(shí)候過期

  3. Pragma:盡量用Cache-Control替代

  4. Cache-Control:可以有如下的值:

    1. public:可以在任何地方緩存,包括瀏覽器、代理等

    2. private:只能被瀏覽器緩存,共享緩存不可被緩存

    3. no-cache:不緩存

    4. no-store:

    5. no-transform:

    6. must-revalidate:緩存必須檢查更新版本

    7. proxy-revalidate:代理緩存必須檢查更新版本

    8. max-age:內(nèi)容能夠被緩存的時(shí)期,以秒表示

    9. s-maxage:覆蓋共享緩存的max-age設(shè)置

下面看看Last-Modified

1.php

<?php
$cache_expire_date = gmdate("D, d M Y H:i:s", time() + 300);
header("Last-Modified:$cache_expire_date");
?>
<a href="2.php" title="">this is page 1</a>
<div>
    page 1 number:111
</div>

2.php

<?php
?>
<a href="1.php" title="">this is page2</a>
<div>
    page 2 number:
</div>

當(dāng)點(diǎn)擊鏈接或者刷新1.php的時(shí)候,會發(fā)現(xiàn)其RequestHeaders中多了一行If-Modified-Since字段。但是,單獨(dú)的Last-Modified不會有任何的緩存作用。


下面來看看Expires:

將1.php修改

<?php
$cache_expire_date = gmdate("D, d M Y H:i:s", time() + 300);
header("Expires: $cache_expire_date");
?>
<a href="2.php" title="">this is page 1</a>
<div>
    page 1 number:111
</div>

第一次請求1.php的時(shí)候,和普通的無差別

在2.php中跳轉(zhuǎn)回1.php,發(fā)現(xiàn)Network--Size中顯示的是from cache,而且點(diǎn)擊文件,其Headers一欄也沒有RequestHeaders等信息。它直接從緩存中獲取。此時(shí)即使將div中的數(shù)字修改,在300秒以內(nèi),通過2.php鏈接跳轉(zhuǎn)回來,依然顯示的是未修改前的頁面。

但是刷新頁面以后,請求和普通的也無差別。


接下來看看Cache-control

將1.php修改為

<?php
header('Cache-control:private,');
?>
<a href="2.php" title="">this is page 1</a>
<div>
    page 1 number:111
</div>

對于沒有設(shè)置時(shí)間的Cache-control,和普通的無差別

接下來繼續(xù)修改

<?php
header('Cache-control:private, max-age=300');
?>
<a href="2.php" title="">this is page 1</a>
<div>
    page 1 number:111
</div>

這個(gè)和通過Expires設(shè)置的差不多。

當(dāng)頁面為

<?php
header('Cache-control: max-age=300');
?>
<a href="2.php" title="">this is page 1</a>
<div>
    page 1 number:111
</div>

即使不設(shè)置private參數(shù),也會緩存

當(dāng)參數(shù)為no-cache的時(shí)候,均會重新請求


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI