PHP高級應用學習筆記之 利用header()函數設置浏覽器緩存
這涉及到4種頭標類型:
Last-ModifIEd(最後修改時間);
Expires(有效期限);
Pragma(編譯指示);
Cache-Control(緩存控制);
前三個頭標屬於HTTP1.0標准。頭標Last-Modified使用UTC日期時間值。如果緩存系統發現Last-ModifIEd值比頁面緩存版本的更接
近當前時間,他就知道應該使用來自服務器的新版本。
Expires 表明了緩存版本何時應該過期(格林威治標准時間)。把它設置為一個以前的時間就會強制使用服務器上的頁面。
Pragma生命了頁面數據應該如何被處理。可以這樣避免對頁面進行緩存:
header("Pragma:no-cache");
Cache-Co0ntrol 頭標是在HTTP1.1裡添加的,能夠實現更細致的控制(還應該繼續使用HTTP1.0頭標)。Cache-Control的設置有
很多,如下表:
指令
含義
public
可以在任何地方緩存
private
只能被浏覽器緩存
no-cache
不能在任何地方緩存
must-revalidate
緩存必須檢查更新版本
proxy-revalidate
代理緩存必須檢查更新版本
max-age
內容能夠被緩存的時期,以秒表示
s-maxage
覆蓋共享緩存的max-age設置下面實例利用header()設置浏覽器的緩存:
1.連接數據庫後獲取數據表中最新的日期值date_added,date_completed,用UNIX_TIMESTAMP()函數將返回值轉化為整數然後獲取最大值賦予$max。
2.定義一個合理緩存時間。
合理值屈居於頁面本身、訪問者的數量和頁面的更新頻率,以上代碼為6個小時。
3.發送Last-ModifIEd頭標。
gmdate()函數使用了參數"r"時,會根據HTTP規范返回相應的日期格式。
4.設置Expires頭標。
5.設置Cache_Control頭標。