Web快取優化的高階認知

2021-09-18 02:18:56 字數 2271 閱讀 5801

一般情況下,**在第二次載入時,載入時間會大大被提公升,這是因為網頁中的一些資源被客戶端快取下來了,網頁在二次載入的時候就不需要重新從遠處伺服器請求資源,而是直接應用客戶端快取好的資料。

扯遠了···

web快取優化是一種提高現有系統利用率的方式,是處於使用者和web伺服器之間的資訊緩衝機制,基本思想是:利用了web頁面訪問的時間的區域性性,把使用者經常訪問的資訊放到使用者的附近或本地,以便使用者後續訪問能從客戶端和本地伺服器獲取資訊,不必訪問遠端伺服器。web快取通過資訊的本地化來加快網頁瀏覽速度,在一定程度上節省網路頻寬,減少伺服器負荷。

由快取實現的位置不同可以將web快取分為三類,即客戶端快取**快取伺服器端快取。客戶端快取主要在客戶機瀏覽器端實現,將使用者請求的資料快取在本地,這種方法響應時間最短,但是不能被區域網所共享;**快取指**伺服器快取,**伺服器位於客戶端與伺服器之間,**伺服器在接到使用者請求時,將快取資訊返回給使用者,如果請求資訊不在快取中,則請求遠端伺服器,**快取的優點是可以被區域網共享;伺服器快取指將伺服器端動態資料快取給客戶端使用。

可快取優化

並不是所有web資源都是可以被快取的。那麼從客戶端優化角度,提高web資源的可快取話就會提高客戶端的效能。

影響web快取的因素主要有http請求方法,請求引數設定以及http狀態碼。http/1.1規定web請求方法有get、head、post、delete、option、connect和trace八種,只有get與post請求是可快取的。

根據http狀態碼可將web物件快取性分為三種。可快取的有:200、203、300、301、401;消極快取的http狀態碼:204、305、400、403、404、405、414、500、502、504;不可快取的http狀態碼:100、101、201、202、205、206、302、303、304、307、401、402、406、407、408、409、411、412、413、415、501、505.

web快取中的生命週期是指web物件相鄰兩次修改的時間。http中對web生命週期進行描述的引數有expireslast modified等,大部分時候靠last modified引數來判斷web物件的生命週期。當某一web資源進行修改後,web快取伺服器中並沒有進行相應的修改,這時候使用者請求該資源並訪問web物件是否包含expires字段,如果包含則進行校驗,符合則返回當前資源,如果不包含該欄位,web快取伺服器會向遠端伺服器發起get-if-modified請求,並傳送當前last modified字段,如果響應不包含last modified字段,則使用當前last modified值。

不可快取web物件的http引數設定

不可快取http頭部資訊

不可快取http頭部資訊引數含義

缺少last modified引數的對應資訊

last modified time指出伺服器認出web物件被修改的最後日期和時間,即若物件在last modified time值域以後被修改過,則該物件是不可快取的。若伺服器的返回值是304 not modified,則物件可被快取

設定set cookie當快取控制資訊cache-control被設定為「不可快取」或是「私有」時,該物件是不可快取的

設定pragma:no-cache當頭部資訊中有此設定時,伺服器禁止請求從快取響應。此時該物件是不可快取的

設定authorization當返回的頭部資訊中包含個人資訊時,快取物件的效率很低。此時該物件是不可快取物件

expires:sat, 03 sep 2016 14:33:39 gmt

nginx給靜態資源新增expires頭

開啟nginx的站點配置檔案,這裡考慮給資源新增30天的有效期,給css和js新增7天有效期,也給字型資源新增30天的有效期。

server{}裡新增下面**:

location ~ .*\.(eot|ttf|otf|woff|svg)$其他

web前端效能優化 快取

雅虎的16條優化準則,作為前端開發工程師,都是耳熟能詳,信手拈來。但很多時候也能難完全的做得到,一些準則跟工程原則是衝突的,難以落實起來。js檔案放尾部,css檔案放頭部等,這些基本的優化點還是可以做到,但是有時候遇到網速慢的情況,會出現一段時間的白屏,從使用者體驗的角度來說,還是有提公升的空間。根...

C 中利用快取優化WEB效能

在 cache 中儲存資料的最簡單的方法就是使用乙個鍵為其賦值,就像 hashtable 或 dictionary 物件一樣 cache key value 這種做法將在快取中儲存項,同時不帶任何依賴項,因此它不會到期,除非快取引擎為了給其他快取資料提供空間而將其刪除。要包括特定的快取依賴項,可使用...

Web 應用優化 充分利用快取

google docs 文件在網路異常或服務異常的情況下,不會直接中斷使用者的編輯動作。對於特殊環境或者緊急情況下,使用者體驗友好。離線場景的持久化儲存基於 indexeddb。indexeddb 可以針對大檔案儲存 blob 資料,而 file 類是基於 blob 的,所以本地附件離線持久化經過驗...