摘要:可緩存優化并不是所有資源都是可以被緩存的。影響緩存的因素主要有請求方法,請求參數設置以及狀態碼。可緩存的有消極緩存的狀態碼不可緩存的狀態碼緩存中的生命周期是指對象相鄰兩次修改的時間。此時該對象是不可緩存對象添加字段可以增長對象生命周期。
一般情況下,網站在第二次加載時,加載時間會大大被提升,這是因為網頁中的一些資源被客戶端緩存下來了,網頁在二次加載的時候就不需要重新從遠處服務器請求資源,而是直接應用客戶端緩存好的數據。
扯遠了···
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生命周期進行描述的參數有Expires和last 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字段可以增長Web對象生命周期。Expires字段告訴Web客戶端,在指定的時間之前都可以使用現有的Web對象,不需要重新下載。假如在HTTP響應中出現這樣的Expires:
expires:Sat, 03 Sep 2016 14:33:39 GMT
這個字段告訴瀏覽器,該資源的生命周期可以持續到2016年9月3日。如果Web網頁中某一段資源返回了這個頭,那么瀏覽器在以后加載這個頁面時,會使用緩存中的本地資源,用戶在二次訪問的時候就節省了下載時間。
Nginx給靜態資源添加Expires頭打開Nginx的站點配置文件,這里考慮給圖片資源添加30天的有效期,給css和js添加7天有效期,也給字體資源添加30天的有效期。
在server{}里添加下面代碼:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { expires 30d; access_log off; } location ~ .*.(js|css)?$ { expires 7d; access_log off; } location ~ .*.(eot|ttf|otf|woff|svg)$ { expires 30d; access_log off; }其他
實踐的東西不多,另外再次對網站進行一次提速,過幾天就開始對服務器進行升級,希望會更大的訪問速度的提升。這篇文章寫得好累啊!
文章首發于:https://www.linpx.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39321.html
摘要:可緩存優化并不是所有資源都是可以被緩存的。影響緩存的因素主要有請求方法,請求參數設置以及狀態碼。可緩存的有消極緩存的狀態碼不可緩存的狀態碼緩存中的生命周期是指對象相鄰兩次修改的時間。此時該對象是不可緩存對象添加字段可以增長對象生命周期。 一般情況下,網站在第二次加載時,加載時間會大大被提升,這是因為網頁中的一些資源被客戶端緩存下來了,網頁在二次加載的時候就不需要重新從遠處服務器請求資源...
摘要:阿里巴巴的共享服務理念以及企業級互聯網架構建設的思路,給這些企業帶來了不少新的思路,這也是我最終決定寫這本書的最主要原因。盡在雙阿里巴巴技術演進與超越是迄今唯一由阿里巴巴集團官方出品全面闡述雙八年以來在技術和商業上演進和創新歷程的書籍。 showImg(https://segmentfault.com/img/remote/1460000015386860); 1、大型網站技術架構:核...
摘要:需要監控的維度有登錄總數成功數失敗分類用戶地區版本號瀏覽器類型登錄來源服務所在機房等等。 引言在任何一家互聯網公司,不管其主營業務是什么,都會有一套自己的賬號體系。賬號既是公司所有業務發展留下的最寶貴資產,它可以用來衡量業務指標,例如日活、月活、留存等,同時也給不同業務線提供了大量潛在用戶,業務可以基于賬號來做用戶畫像,制定各自的發展路徑。因此,賬號服務的重要性不言而喻,同時美團業務飛速發展...
摘要:業務和架構不分家,架構是建立在對業務的理解之上的。主鍵最好保持順序遞增,隨機主鍵會導致聚簇索引樹頻繁分裂,隨機增多,數據離散,性能下降。沒有索引的更新,可能會導致全表數據都被鎖住。 本博客并非全部原創,其實是一個知識的歸納和匯總,里面我引用了很多網上、書上的內容。也給出了相關的鏈接。 本文涉及的知識點比較多,大家可以根據關鍵字去搜索相關的內容和購買相應的書籍進行系統的學習。不對的地方...
摘要:雖然有著各種各樣的不同,但是相同的是,他們前端優化不完全指南前端掘金篇幅可能有點長,我想先聊一聊閱讀的方式,我希望你閱讀的時候,能夠把我當作你的競爭對手,你的夢想是超越我。 如何提升頁面渲染效率 - 前端 - 掘金Web頁面的性能 我們每天都會瀏覽很多的Web頁面,使用很多基于Web的應用。這些站點看起來既不一樣,用途也都各有不同,有在線視頻,Social Media,新聞,郵件客戶端...
閱讀 363·2024-11-06 13:38
閱讀 738·2024-09-10 13:19
閱讀 866·2024-08-22 19:45
閱讀 1363·2021-11-19 09:40
閱讀 2598·2021-11-18 13:14
閱讀 4266·2021-10-09 10:02
閱讀 2285·2021-08-21 14:12
閱讀 1268·2019-08-30 15:54