伺服器查緩存
Ⅰ 瀏覽器緩存(http緩存)
瀏覽器緩存有兩種:強制緩存和協商緩存
向瀏覽器緩存中查找請求結果,根據【緩存規則】決定是否使用該結果。
強制緩存失效後,攜帶緩存標識請求伺服器,伺服器根據緩存標識判斷是否使用緩存
當瀏覽器向伺服器發送請求的時候,伺服器會將緩存規則放入HTTP響應的報文的HTTP頭中和請求結果一起返回給瀏覽器(ps:下文說的時間點均為類似:Sat Aug 14 2021 11:01:52,秒級)
兩個欄位:Expires和Cache-Control,優先順序:Cache-Control > Expires,客戶端比較時間
Expires :HTTP/1.0,返回值為【到期時間點】,再次請求,客戶端的時間< Expires,直接用緩存(ps:客戶端與伺服器端時間可能存在誤差,出問題)
Cache-Control :HTTP/1.1,有以下欄位
Last-Modified / If-Modified-Since 和 Etag / If-None-Match,優先順序Etag > Last-Modified,伺服器比較時間
Last-Modified(服務端返回客戶端) / If-Modified-Since(客戶端傳入服務端) :兩個冊慎值相同,表示:資源文件在伺服器最後裂姿談被修改的時間【時間點】。
Etag(服務端返回客戶端) / If-None-Match(客戶端傳入服務端) ,兩個值相同,為當前資源文件的一個唯一標識(由伺服器生成)
Etag什麼時候用
雅虎禁用了Etag:因為ETag的值和伺服器有關,那麼對於同樣的文件,可能下次請求的時候是發給不同的伺服器,結果也會重新發送數據,所以就會影響網頁載入速度,增加伺服器的壓力(但Last-Modified也與伺服器有關)
主要解決的問題:
瀏覽器的每個tab都是一個進程
兩個緩存的肆碰地方 from memory cache(內存緩存) 和 from disk cache(硬碟緩存) ,讀取順序為memory > disk
Ⅱ linux下如何查看伺服器物理內存狀況
查看內存使用情況,可以使用命令free敗鬧-m
其結果大致如下:
Mem:32108306811426012321165
-/+buffers/cache:939222715
Swap:34287126233025
在第一部分Mem行中有如下參數:
*total:內存總數,即32108MB
*used:已經使用的內存數,即30681MB
*free:空閑的內存數:即1426MB
*shared:當前已廢棄不用,總是0
*buffersBuffer:緩存內存數,即舉枯汪123MB
*cachedPage:緩存內存數,即421MB
其中,內存總數與已經使用內存數和空閑內存數的關系是:
total(32108)=used(30681)+free(1426)
在第二部分內容(-/+buffers/cache)中個參數如下所示:
(-buffers/cache):真正使用的內存數,即9392M,他指的是第一部分的used-buffers-cached
(+buffers/cache):可用的內存數,即22715M,他指的是第一部分的free+buffers+cached
其含義可以理解為:-buffers/cached反映的是被程序實實在在正仔用掉的內存,而+buffers/cached反映的是可以被使用(或者說挪用)的內存總數。