2013-03-14 11 views
5

Qual è la differenza tra una risposta HTTP con Cache-Control: no-cache vs Cache-Control: max-age=0, must-revalidate, proxy-revalidate?"no-cache" vs "max-age = 0, deve-revalidate, proxy-riconvalidare"

I browser considerano questo come identico?

+1

Semanticamente; non tanto. È più breve, però. –

+1

@MarkNottingham. Questo vale anche nel * mondo reale *? I browser li trattano davvero come * identici *? – Pacerier

+0

Non l'ho provato da un po ', ma credo di sì. –

risposta

2

In generale i diversi browser non si comportano esattamente nello stesso modo. Intestazioni della cache HTTP.

Una piccola differenza che ricordo (non riesco a trovare la fonte, quindi non sono al 100% questa è la descrizione del comportamento esatto) è che Chrome (afair) considera max-age=0 come se specificasse max-age=10 (assumendo che la differenza di comportamento sia abbastanza piccolo, ma l'impatto sulle prestazioni è ancora significativo).

In ogni caso, ecco alcuni altri esempi di HTTP cache di differenza di comportamento tra i browser:

  • Alcuni dare la preferenza a header HTTP 1.0 Cache (Pragma), gli altri daranno la preferenza a HTTP 1.1 intestazioni Cache
  • alcuni browser (FF +?) don't honorno-store direttiva e memorizzare i dati nella cache crittografati
  • Alcuni browser ignorano no-cache direttiva è specificato dopo public, altri no.
  • IE ignoresmax-age se vary è presente.
  • ecc

mia raccomandazione generale sarebbe quella di utilizzare sia Cache-Control: no-cache, must-revalidate, proxy-revalidate, pragma: no-cache (HTTP 1.0) e Expires: 0 al fine di garantire tutti i browser non memorizzare nella cache il contenuto di queste intestazioni.

+0

Come hai ottenuto le informazioni che Chrome considera 'max -age = 0' come se avessimo specificato 'max-age = 10'? – Pacerier

+0

Lo ricordo, ma non riesco a trovare la fonte. Aggiornerò la risposta con una prenotazione finché non troverò la giusta fonte. In ogni caso: posso portare un numero di altri esempi di browser che non si comportano allo stesso modo. Intestazioni della cache HTTP. –