當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 文件管理 » 伺服器頁面緩存

伺服器頁面緩存-九游会j9娱乐平台

發布時間: 2024-07-17 11:23:48

㈠ 瀏覽器緩存和伺服器緩存

一、瀏覽器緩存

瀏覽器緩存即http緩存;瀏覽器緩存根據是否需要向伺服器重新發起http請求將緩存過程分為兩個部分,分別是 強制緩存 和 協商緩存  。

瀏覽器第一次請求資源的時候伺服器會告訴客戶端是否應該緩存資源,根據響應報文中http頭的緩存標識,決定是否緩存結果,是則將請求結果和緩存標識存入瀏覽器緩存中。如下圖:

1.強制緩存 :瀏覽器會對緩存進行查找,並根據一定的規則確定是否使用緩存。

強制緩存的緩存規則?

http/1.0 expires 這個欄位是絕對時間,比如2018年6月30日12:30,然後在這個時間點之前的請求都會使用瀏覽器緩存,除非清除了緩存。

這個欄位的缺點就是只會同步客戶端的時間,這就有可能修改客戶端時間導致緩存失效。

http/1.1 cache-control       這個是1.1的時候替換expires的,它會有幾種取值:

public :所有內容都將被緩存(客戶端和代理伺服器都可緩存)

private :所有內容只有客戶端可以緩存, cache-control的默認取值

no-cache :客戶端緩存內容,但是是否使用緩存則需要經過協商緩存來驗證決定

no-store :所有內容都不會被緩存,即不使用強制緩存,也不使用協商緩存

max-age=xxx (xxx is numeric) :緩存內容將在xxx秒後失效

比如max-age=500,則在500秒內再次請求會直接只用緩存。

優先性:cache-control > expires

如果同時存在,cache-control會覆蓋expires。

這個欄位的缺點就是:

如果資源更新的速度是秒以下單位,那麼該緩存是不能被使用的,因為它的時間單位最低是秒。

如果文件是通過伺服器動態生成的,那麼該方法的更新時間永遠是生成的時間,盡管文件可能沒有變化,所以起不到緩存的作用。

上圖中瀏覽器緩存中存在該資源的緩存結果,並且沒有失效,就會直接使用緩存的內容。

上圖中瀏覽器緩存中沒有該資源的緩存結果和標識,就會直接向伺服器發起http請求。

2.協商緩存: 瀏覽器的強制緩存失效後(時間過期),瀏覽器攜帶緩存標識請求伺服器,由伺服器決定是否使用緩存。

伺服器決定的規則?

控制協商緩存的欄位有 last-modified / if-modified-since 和 etag / if-none-match。

①last-modified 是伺服器返回給瀏覽器的本資源的最後修改時間。

當下次再次請求的時候,瀏覽器會在請求頭中帶 if-modified-since ,即上次請求下來的 last-modified 的值,

然後伺服器會用這個值和該資源最後修改的時間比較,如果最後修改時間大於這個值,則會重新請求該資源,返回狀態碼200。

如果這個值和最後修改時間相等,則會返回304,告訴瀏覽器繼續使用緩存。

② etag 是伺服器返回的一個hash值。

當下次再次請求的時候,瀏覽器會在請求頭中帶 if-none-match ,即上次請求下來的 etag 值,

然後伺服器會用這個值和該資源在伺服器的 etag 值比較,如果一致則會返回304,繼續使用緩存;如果不一致,則會重新請求,返回200。

二、伺服器緩存

上面是一個簡單的流程圖:

用戶1訪問a頁面,伺服器解析a頁面返回給用戶1,同時在伺服器內存上做一定映射,把a頁面緩存在硬碟上面

用戶2訪問a頁面,伺服器直接根據內存上的映射找到對應的頁面緩存,直接返回給用戶2,這樣就減少了伺服器對同一頁面的重復解析

伺服器緩存和瀏覽器緩存的區別:

伺服器緩存是把頁面緩存到伺服器上的硬碟里,而瀏覽器緩存是把頁面緩存到用戶自己的電腦里

nginx伺服器 

nginx是一個高性能的http和反向代理伺服器。具有非常多的優越性:

在連接高並發的情況下,nginx是apache伺服器不錯的替代品,nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平台之一。

nginx提供了expires、etag、if-modified-since指令來實現瀏覽器緩存控制。

nginx -s reload#重新載入配置文件 

nginx -s reopen#重新打開log文件 

nginx -s stop#快速關閉nginx服務 

nginx -s quit #優雅的關閉nginx服務,等待工作進程處理完所有的請求

nginx設置靜態文件的緩存過期時間 

location ~.*\.(js|css|html|png|jpg)$ {

  expires 3d;

}

 expires    3d;//表示緩存3天

expires    3h;//表示緩存3小時

expires    max;//表示緩存10年

expires    -1;//表示永遠過期。

如果設置為-1在js、css等靜態文件在沒有修改的情況下返回的是http 304,如果修改返回http 200

對於靜態資源會自動添加etag,可以通過添加etag off指令禁止生成etag。如果是靜態文件,那麼last-modified值為文件的最後修改時間。

在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。在常用的緩存設置裡面有兩種方式,都是使用add_header來設置:分別為cache-control和pragma。

location ~ .*\.(css|js|swf|php|htm|html )$ {

  add_header cache-control no-store;

  add_header pragma no-cache;

  }

nginx gzip壓縮

使用 gzip 壓縮可以降低網站帶寬消耗,同時提升訪問速度。

主要在nginx服務端將頁面進行壓縮,然後在瀏覽器端進行解壓和解析,

目前大多數流行的瀏覽器都遲滯gzip格式的壓縮,所以不用擔心。

默認情況下,nginx的gzip壓縮是關閉的,同時,nginx默認只對text/html進行壓縮

gzip on;

ersio #開啟gzip壓縮輸出

gzip_http_vn 1.0 ;#默認1.1

#其中的gzip_http_version的設置,它的默認值是1.1,就是說對http/1.1協議的請求才會進行gzip壓縮

#如果我們使用了proxy_pass進行反向代理,那麼nginx和後端的upstream server之間是用http/1.0協議通信的。

gzip_vary on ;

#和http頭有關系,加個vary頭,給代理伺服器用的,有的瀏覽器支持壓縮,有的不支持,

#所以避免浪費不支持的也壓縮,所以根據客戶端的http頭來判斷,是否需要壓縮

gzip_comp_level 6;

#設置gzip壓縮等級,等級越底壓縮速度越快文件壓縮比越小,反之速度越慢文件壓縮比越大 1-9

gzip_proxied any;

#ngnix作為反向代理的時候啟用

#expample:gzip_proxied no-cache;

# off – 關閉所有的代理結果數據壓縮

# expired – 啟用壓縮,如果header中包含」expires」頭信息

# no-cache – 啟用壓縮,如果header中包含」cache-control:no-cache」頭信息

# no-store – 啟用壓縮,如果header中包含」cache-control:no-store」頭信息

# private – 啟用壓縮,如果header中包含」cache-control:private」頭信息

# no_last_modified – 啟用壓縮,如果header中包含」last_modified」頭信息

# no_etag – 啟用壓縮,如果header中包含「etag」頭信息

# auth – 啟用壓縮,如果header中包含「authorization」頭信息

# any – 無條件壓縮所有結果數據

gzip_types text/html ;#壓縮的文件類型

#設置需要壓縮的mime類型,非設置值不進行壓縮

#param:text/html|application/x-javascript|text/css|application/xml

gzip_buffers 16 8k; #設置gzip申請內存的大小,其作用是按塊大小的倍數申請內存空間設置gzip申請內存的大小,其作用是按塊大小的倍數申請內存空間

#設置gzip申請內存的大小,其作用是按塊大小的倍數申請內存空間

# param1:int 增加的倍數

# param2:int(k) 後面單位是k

# example: gzip_buffers 4 8k;

# disable gzip for certain browsers.

gzip_disable 「msie [1-6].(?!.*sv1)」; #ie6不支持gzip,需要禁用掉ie6

㈡ 如何清除dns伺服器緩存

body{
line-height:200%;font-size:14px;
}
如何清除dns伺服器緩存
有些時候,dns伺服器的配置與運行都正確,但dns客戶機還是無法理喻dns伺服器實現域名解析。造成這個問題的原因可能是dns客戶機或dns伺服器的緩存中有不正確或過時信息,這時需要
清除dns客戶機或dns伺服器的緩存信息。清除方法如下。
①對於dns伺服器的緩存的清除,可以在dns控制台中,右擊dns伺服器圖標,在彈出的快捷菜單中選擇【清除緩存】命令,如圖3-42所示。
②對於dns客戶機的緩存的清除,可在命令行窗口中,在dos提示符後執行“ipconfig/flushdns”命令,如圖3-43所示。

㈢ php應用中常用的9大緩存技術

一、全頁面靜態化緩存



也就是將頁面全部生成html靜態頁面,用戶訪問時直接訪問的靜態頁面,而不會去走php伺服器解析的流程。此種方式,在cms系統中比較常見,比如dedecms;


一種比較常用的實現方式是用輸出緩存:


ob_start()******要運行的代碼*******$content=ob_get_contents();****將緩存內容寫入html文件*****ob_end_clean();


二、數據緩存


顧名思義,就是緩存數據的一種方式;比如,商城中的某個商品信息,當用商品id去請求時,就會得出包括店鋪信息、商品信息等數據,此時就可以將這些數據緩存到一個php文件中,文件名包含商品id來建一個唯一標示;下一次有人想查看這個商品時,首先就直接調這個文件裡面的信息,而不用再去資料庫查詢;其實緩存文件中緩存的就是一個php數組之類;


ecmall商城系統裡面就用了這種方式;




三、查詢緩存


其實這跟數據緩存是一個思路,就是根據查詢語句來緩存;將查詢得到的數據緩存在一個文件中,下次遇到相同的查詢時,就直接先從這個文件裡面調數據,不會再去查資料庫;但此處的緩存文件名可能就需要以查詢語句為基點來建立唯一標示;


按時間變更進行緩存


就是對於緩存文件您需要設一個有效時間,在這個有效時間內,相同的訪問才會先取緩存文件的內容,但是超過設定的緩存時間,就需要重新從資料庫中獲取數據,並生產最新的緩存文件;比如,我將我們商城的首頁就是設置2個小時更新一次。


四、頁面部分緩存


該種方式,是將一個頁面中不經常變的部分進行靜態緩存,而經常變化的塊不緩存,最後組裝在一起顯示;可以使用類似於ob_get_contents的方式實現,也可以利用類似esi之類的頁面片段緩存策略,使其用來做動態頁面中相對靜態的片段部分的緩存。


該種方式可以用於如商城中的商品頁;


五、opcode緩存


首先php代碼被解析為tokens,然後再編譯為opcode碼,最後執行opcode碼,返回結果;所以,對於相同的php文件,第一次運行時可以緩存其opcode碼,下次再執行這個頁面時,直接會去找到緩存下的opcode碼,直接執行最後一步,而不再需要中間的步驟了。


比較知名的是xcache、turckmmcache、phpaccelerator等。


六、按內容變更進行緩存


這個也並非獨立的緩存技術,需結合著用;就是當資料庫內容被修改時,即刻更新緩存文件;


比如,一個人流量很大的商城,商品很多,商品表必然比較大,這表的壓力也比較重;我們就可以對商品顯示頁進行頁面緩存;


當商家在後台修改這個商品的信息時,點擊保存,我們同時就更新緩存文件;那麼,買家訪問這個商品信息時,實際問的是一個靜態頁面,而不需要再去訪問資料庫;


試想,如果對商品頁不緩存,那麼每次訪問一個商品就要去資料庫查一次,如果有10萬人在線瀏覽商品,那伺服器壓力就大了;


七、內存式緩存


提到這個,可能大家想到的首先就是memcached;memcached是高性能的分布式內存緩存伺服器。一般的使用目的是,通過緩存資料庫查詢結果,減少資料庫訪問次數,以提高動態web應用的速度、提高可擴展性。


它就是將需要緩存的信息,緩存到系統內存中,需要獲取信息時,直接到內森塌存中取;比較常用的方式就是key_>value方式;緩孝


connect($memcachehost,$memcacheport)ordie("couldnotconnect");$memcache->set('key','緩存的內容');$get=$memcache->get($key);//獲取信息?>


八、apache緩存模塊


apache安裝完以後,是不允許被cache的。雲南it培訓http://www.kmbdqn.cn/認為如果外接了cache或squid伺服器要求進行web加速的話,就需要在htttpd.conf里進行設置,當然前提是在安裝apache的時候要激活mod_cache的模塊。此哪圓


㈣ 網站後台緩存 瀏覽器緩存 伺服器緩存這三者有什麼區別呢

網站後台緩存 是網站程序產生的一些臨時文件,如php程序最喜歡。這個文件一般是在網站程序目錄。
伺服器緩存是伺服器為了提升速度而產生的一些臨時文件,如gzip的文件,一般是防在特定的目錄。
瀏覽器緩存是用戶本地瀏覽器緩存的網頁文件,比如我們第一次打開一個網站速度會慢一些,第二次打開就很快,就是緩存在了本地。

㈤ 怎樣 清除伺服器緩存

登陸伺服器,重新啟動應用服務(如iis、tomcat或jboss等)。

㈥ 瀏覽器緩存是什麼

問題一:ie緩存是什麼意思.??? 什麼是ie緩存,它事實上相當於一個臨時倉庫。每次打開一個網頁,ie會自動創建一份該網頁文字和圖像的緩存文件(一個銀襲臨時副本)。當再次打開該頁時,ie會檢查網站伺服器上該頁的變化。如果頁面變化了,ie從網路上重新下載新的網頁。如果該頁面沒有變化,ie就從內存或硬碟上使用緩存中的臨時復本來顯示它。
ie會在緩存中保留網頁到硬碟,直到各自的緩存占滿空間;ie則根據網頁的時間和空間來向下取捨。這樣設計的目的是為了更快地裝載頁面。
緩存不僅可以用來加快網頁載入速度,而且當需要查看以前丹過的網頁時,還可以無需驅動「小貓」,只需單擊ie上的「文件→離線工作」菜單命令,然後單擊工具欄上的「歷史」按鈕,即可方便地進行瀏覽。

問題二:ie緩存是什麼?謝謝! ie緩存是指你使用ie瀏覽器瀏覽網站時,從瀏覽的網站上下載到本地的圖片,js文件,css文件,視頻、音樂以及網站在操作時候保存的cookie等文件!在你下次瀏覽該網站時,無需二次下載,直接從本地讀取,節約了瀏覽器對網手蔽站的載入時間!

問題三:瀏覽器產生的緩存主要是什麼 瀏覽網頁圖片文字,視頻還有就是瀏覽器下載的東西所產生的

問題四:瀏覽器緩存的作用是什麼? 關於緩存原理,帖個清楚點的給樓主:緩存的概念 瀏覽器緩存這個概念,對於經常用瀏覽器來瀏覽信息的用戶來說並不十分陌生。用戶也許在用瀏覽器瀏覽信息時,經常使用返回和後退的瀏覽功能,調用你以前閱讀過的頁面,這時,你會發現顯示速度是很快的,其實這些你剛調出來的內容就放在計算機的緩存中,而不需要再次從internet上重新傳輸數畢搏州據,這樣就會給用戶造成了一種訪問速度被提高的錯覺。 所以瀏覽器緩存其實就是指在本地使用的計算機中開辟一個內存區,同時也開辟一個硬碟區作為數據傳輸的緩沖區,然後用這個緩沖區來暫時保存用戶以前訪問過的信息。既然緩存存在於硬碟之中,那麼它肯定是以文件夾的形式出現的。各個不同類型的瀏覽器都有各個不同的文件夾作為緩存使用,在系統的預設狀態下, ie3.0和ie4.0版本的瀏覽器緩存文件夾為 \windows\temporary internet files...緩存的工作原理 緩存按照信息存放的位置可以分成 內存緩存 和 硬碟緩存 。 內存緩存是用於暫時存儲本次上網所調用的數據資料的,從internet上傳來的每一個網頁信息,在內存緩存中都相應地給予保存一個備份,返回和 向前實際上是將以前的頁面從內存緩存中調出來並顯示在用戶的瀏覽器窗口中,在內存緩存中存放的網頁信息量和內存緩存的大小有關,內存緩存越大,保存的網頁信息量就越多。 硬碟緩存是用於保存用戶前幾次上網時所調用的信息資料,用戶從歷史記錄中調出來的內容其實就是保存在硬碟緩存中的,只要用戶開辟的硬碟緩存足夠大,將可以保存用戶前幾個星期甚至幾個月前調用過的信息資料。 其它見2#

問題五:清除瀏覽器緩存和清除緩存有什麼區別 不需要什麼啊,直接在瀏覽器裡面就有設置的啊,我現在用的手機qq瀏覽器,基本上我就是一天清理一次,所以我用它上網啊,看小說和視頻啊什麼的時候,從來沒卡過,還有,手機qq瀏覽器可以設置自動清理緩存哦,你可以設置每天一次多方便。

問題六:ie緩存是什麼意思? 就是 瀏覽器為了方便你再次快速訪問你訪問過的網頁,而把你訪問過的網頁的元素(圖片,文字等)暫時保存在硬碟里,你下次訪問的時候他就不從遠方伺服器上下載了而直接從你的硬碟里打開,節省了處理時間。

問題七:網站後台緩存 瀏覽器緩存 伺服器緩存這三者有什麼區別呢? 網站後台緩存 是網站程序產生的一些臨時文件,如php程序最喜歡。這個文件一般是在網站程序目錄。
伺服器緩存是伺服器為了提升速度而產生的一些臨時文件,如gzip的文件,一般是防在特定的目錄。
瀏覽器緩存是用戶本地瀏覽器緩存的網頁文件,比如我們第一次打開一個網站速度會慢一些,第二次打開就很快,就是緩存在了本地。

問題八:瀏覽器緩存就是cookie嗎? 5分 緩存是指網站站點的一些資源,比如圖片,聲音,文本等;而cookie只是網站的標識信息,有些網站把密碼等信息加密後存在cookie中,方便下次訪問可以快速識別,但也面臨著被竊取的風險。

問題九:本地緩存和瀏覽器緩存有什麼區別 本地存儲(localstorage)是以資料庫形式永久保存在瀏覽器的存儲空間里,而瀏覽器緩存(cache)是保存在指定的緩存目錄,緩存過大可能影響瀏覽器檢索速度,需要時常清理。

問題十:ie緩存是什麼東西 我沒有用ie瀏覽器怎麼還是有ie緩存 為了提高訪問網頁的速度,internet explorer瀏覽器會採用累積式加速的方法,將你曾經訪問的網頁內容(包括圖片以及cookie文件等)存放在電腦里。這個存放空間,我們就稱它為ie緩存。以後我們每次訪問網站時,ie會首先搜索這個目錄,如果其中已經有訪問過的內容,那ie就不必從網上下載,而直接從緩存中調出來,從而提高了訪問網站的速度。
ps:ie緩存就是幫助你更快瀏覽網頁的一個東西。
lz沒用ie瀏覽器,但是有很多瀏覽器用的是ie內核,例如360安全瀏覽器就是基於ie內核改編的,說白了就是把ie瀏覽器的外觀換的好看一點再加一些別的功能而已,其內核機制還是ie的,所以用它上網一樣會產生ie緩存,類似於360安全瀏覽器的瀏覽器還有很多,所以沒用ie卻又ie緩存是可以解釋的。
ps:不會產生ie緩存的瀏覽器比較有名的有谷歌瀏覽器、火狐瀏覽器等,但不會產生ie緩存還會產生它自己獨立的緩存。

熱點內容
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:374
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:954
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:129
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:386
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
c語言指針的例子 發布:2024-07-17 15:08:01 瀏覽:768
linuxzcat 發布:2024-07-17 15:02:09 瀏覽:901
賓士編程嗎 發布:2024-07-17 14:57:08 瀏覽:853
硬碟加密硬體 發布:2024-07-17 14:51:05 瀏覽:836
网站地图