next up previous contents index
Next: Vytvoření záznamu Up: Životní cyklus záznamu Previous: Životní cyklus záznamu

Klasifikace požadavku a odpovědi

Tato akce má za úkol určení, zda je možné příslušnou odpověď od serveru uložit na FS, tedy zda vznikne pro odpověď z cílového serveru příslušný záznam.

 Analýza požadavku
Pokud požadavek obsahuje direktivu "Pragma: no-cache", pak je proxy server povinen kontaktovat cílový server a jeho odpověď beze změny a ukládání odeslat klientovi, což ovšem díky chování některých prohlížečů degraduje proxy server pouze na "rouru" ("pipe") mezi klientem a cílovým serverem, což nemusí být žádoucí. Jedná se speciálně o prohlížeče s interní cache (MSIE,Netscape), které formulují požadavek na proxy server pouze jako revalidátor vlastního záznamu, např.:

GET http://www.postgresql.org/ HTTP/1.0
If-Modified-Since: Sat, 13 May 2000 17:37:12 GMT;
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.72 [en]
Pragma: no-cache
Host: www.postgresql.org
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: cs, en
Accept-Charset: iso-8859-1
což ve spojení s direktivou "Pragma: no-cache" způsobí, že sice dojde k občerstvení záznamu v interní cache prohlížeče, ovšem nikoli už na proxy-serveru. Z tohoto důvodu je možné vypnout respektování direktivy "Pragma: no-cache" v hlavičce klienta, pomocí konfigurační volby "sg_ignore_client_no_cache" (výchozí nastavení pro tuto volbu je ovšem FALSE).

Analýza odpovědi
Pro uložení v cache musí odpověď splňovat následující podmínky:

1.
Stavový kód musí být 200, 203, 300, 301 nebo 410.
2.
Musí být přítomná položka "Date".
3.
Nesmí obsahovat explicitní zákaz cachování, tzn. položky

  • Pragma: no-cache
  • Cache-Control: no-cache
  • Cache-Control: max-age=0
  • Cache-Control: private
4.
Musí obsahovat položku "Content-Length" (tento požadavek je možné vyřadit konfigurační volbou "sg_store_nocontentlength_entry") a pokud jí obsahuje, tak nesmí překročit maximální velikost záznamu (konfigurační volba "sg_max_entry_size").
Součástí analýzy odpovědi je i zohlednění položky "Vary" (volitelně konfigurační volbou "sg_vary_features"), která ovšem neovlivňuje klasifikaci záznamu.


next up previous contents index
Next: Vytvoření záznamu Up: Životní cyklus záznamu Previous: Životní cyklus záznamu
Stanislav Pavlicek
2000-06-12