refresh_pattern的作用:
用於確定乙個頁面進入cache後,它在cache中停留的時間。
語法:refresh_pattern [-i] regexp min percent max [options]
幾個概念:
resource age = (物件進入cache的時間) - (物件的last_modified)
response age = (當前時間) - (物件進入cache的時間)
lm-factor=(response age)/(resource age)
舉個例子,這裡只考慮percent, 不考慮min 和 max
例如:refresh_pattern 20%
假設源伺服器上www.aaa.com/index.htm -----lastmodified 是 2007-04-10 02:00:00
squid上 proxy.aaa.com/index.htm index.htm進入cache的時間 2007-04-10 03:00:00
1)如果當前時間 2007-04-10 03:00:00
resource age =3點-2點=60分鐘
response age =0分鐘
index.htm還可以在cache停留的時間(resource age)*20%=12分鐘
也就是說,index.htm進入cache後,可以停留12分鐘,才被重新確認。
2)如果當前時間 2007-04-10 03:05:00
resource age =3點-2點=60分鐘
response age =5分鐘
index.htm還可以在cache停留的時間(resource age)*20%=12分鐘-5=7
lm-factor=5/60=8.3%<20%
一直到2007-04-10 03:12:00 lm-factor=12/60=20% 之後,cache中的頁面index.htm終於stale。
如果這時沒有index.htm的請求,index.htm會一直在快取中,如果有index.htm請求,squid收到該請求後,由於已經過期,squid會向源伺服器發乙個index.htm是否有改變的請求,源伺服器收到後,如果index.htm沒有更新,squid就不用更新快取,直接把快取的內容放回給客戶端,同時,重置物件進入cache的時間為與源伺服器確認的時間,比如2007-04-10 03:13:00,如果正好在這個後重新確認了頁面。重置後,resource age變長,相應在cache中存活的時間也變長。
如果有改變則把最新的index.htm返回給squid,squid收到會更新快取,然後把新的index.htm返回給客戶端,同時根據新頁面中的last_modified和取頁面的時間,重新計算resource age,進一步計算出存活時間。
實際上,乙個頁面進入cache後,他的存活時間就確定了,即 (resource age) * 百分比,一直到被重新確認。
理解了百分比後,min max就好理解了
squid收到乙個頁面請求時:
1、計算出response age,
2、如果response agemax 則 stale
3、如果response age在之間,如果response時間《存活時間,fresh,否則stale
如何理解Socket
socket協議的形象描述 socket的英文原義是 孔 或 插座 在這裡作為4bds unix的程序通訊機制,取後一種意義。socket非常類似於 插座。以乙個國家級 網為例。的通話雙方相當於相互通訊的2個程序,區號是它的網路位址 區內乙個單位的交換機相當於一台主機,主機分配給每個使用者的局內號碼...
如何理解LPCTSTR
l表示long指標,這是為了相容windows 3.1等16位作業系統遺留下來的,在win32中以及其他的32為作業系統中,long指標和near指標及far修飾符都是為了相容的作用。沒有實際意義。p表示這是乙個指標 c表示是乙個常量 t在win32環境中,有乙個 t巨集,這個巨集用來表示你的字元是...
如何理解C
如何理解c 面對這個問題,一千個人有一千個哈姆雷特。我也不知道如何理解c 畢竟我c 程式設計經驗實在是少。在閱讀effective c 這本書時,條款01 視c 為乙個語言聯邦裡面貌似給出了解釋,但是不知道能不能作為這個問題的答案。說起c 大多數人都會和c聯絡起來。誠然,c 是c的超集,c是c 的子...