一、 说明
正常流程:第一个请求miss ,在第一个请求store_ok以后,以后的请求再访问相同url则是hit。
折叠流程: 第一个请求处理miss回源过程中,还没有store_ok之前,第二个请求进来了。squid对该时期有两种做法,如下:
collapsed_forwarding on 第一个请求进入miss后,即创建storeentry,以后的请求来了,就会hit。
collapsed_forwarding off 第一个请求进入miss后, 在还没有处理源站响应包头之前。第二个请求也会miss。
二、详解
正常流程没什么可说的,来说说折叠流程。
在说之前先唠叨下squid中storeSetPrivateKey和storeSetPublicKey 。
storeSetPrivateKey: 将entry设置PRIVATE标志,通过storeKeyPrivate(
url,method,id)hash 获得一个key,并且storeHashInsert(e,key)。 一般私有只能当前request用,其他request不可见。
storeSetPublicKey:将entry的PRIVATE标志清楚、通过storeKeyPublic&#