Ben birçok belge hizmet verebilir küçük bir PHP uygulama tamamlamışlardır. Bu belgeler must istemcileri and vekiller tarafından önbelleklenebilir.
$ _POST Değer / $ _GET değeri: vekiller benim sonuçları önbelleğe beri hizmet belgeleri bu sırayla dayanır ve farklı dillerde (($ _SERVER ['HTTP_ACCEPT'] dayalı içerik müzakeresini) farklı Mimes türleri olabilir çünkü ben ekstra dikkatli olmak gerekir / URL / PHP oturum değeri / $ _COOKIE değer / $ _SERVER ['HTTP_ACCEPT_LANGUAGE'] / varsayılan komut değer).
(: Aşağıdaki düzenleme bakınız değişti soru) kısaca özetlemek için, bir sayfa birçok MIME türü same URL ile and birçok dil ile servis edilebilir.
Ben kullanmak vekiller üzerinde önbellek yardımcı olmak için "Vary: Accept" ETag başlığı ile başlık in combination. ETAG'ları güncel dili ve son değiştirilme damgası bir MD5.
Her I:
- Expires başlığını gönder
- Cache-Control başlığı gönder
- Bir Last-Modified başlığını gönder
- Content-Type üstbilgisi gönder
- (Güncel dili ve Son-Modifiye damgası dayanan) bir ETag başlık gönder
- Content-Language gönder
- Belge XHTML ise: başlığını "Kabul Vary" gönder
Şimdi sorumu: Bu vekiller and istemcilerin önbellek yardımcı olmak için yeterli mi? Ben bir şey / başlığı kaçırdım mı?
Size yardımcı olmak için, burada (benim yerel çevre üzerinde) bir test sayfası için HTTP yanıt başlığı bulunuyor:
"
Date Wed, 30 Dec 2009 18:56:26 GMT
Server Apache/2.0.63 (Win32) PHP/5.1.0
X-Powered-By PHP/5.1.0
Set-Cookie Tests=697daqbmple2e1daq2dg74ur96; path=/
Expires Wed, 30 Dec 2009 21:56:26 GMT
Cache-Control public, max-age=10800
Last-Modified Mon, 28 Dec 2009 15:11:49 GMT
Etag "44fa50be4638161a596e4b75d6ab7a94"
Vary Accept
Content-Language en-us
Content-Length 3043
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Content-Type application/xhtml+xml; charset=UTF-8
"
EDIT: Tamam ben bu durumda and (o kadar çok kaynaktan gelebilir - yukarıya bakınız), farklı dilleri olan birçok Mimes bir belge ile hizmet anlıyoruz sadece düz kötü tasarım edilir. Eğer yapmak istiyorsanız bu sadece "özel" önbellek (vekiller hiçbir önbellek) kullanmak ... Ben düzetin muyum?
Her dil, kendi URL varsa (ancak her URL birçok MIME ile servis edilebilir hala) benim geçerli uygulama bir "kamu" cache (istemciler + vekiller önbellek) OK mi?