2010-06-25 5 views
9

Was ist der richtige Weg, um die Cache-Kontrolle zu setzen?Google App Engine - headers [] und headers.add_header() für die Cache-Steuerung

Manchmal sehe ich die Verwendung von Header []

self.response.headers["Pragma"]="no-cache" 
self.response.headers["Cache-Control"]="no-cache, no-store, must-revalidate, pre-check=0, post-check=0" 
self.response.headers["Expires"]="Thu, 01 Dec 1994 16:00:00" 

Andere Zeiten, ich sehe headers.add_header()

self.response.headers.add_header("Pragma","no-cache") 
self.response.headers.add_header("Cache-Control","no-cache, no-store, must-revalidate, pre-check=0, post-check=0") 
self.response.headers.add_header("Expires","Thu, 01 Dec 1994 16:00:00") 

Und auch eine Mischung aus beiden Header [] und headers.add_header()

self.response.headers["Pragma"]="no-cache" 
self.response.headers.add_header("Cache-Control","no-cache, no-store, must-revalidate, pre-check=0, post-check=0") 
self.response.headers.add_header("Expires","Thu, 01 Dec 1994 16:00:00") 

Antwort

10

Der Unterschied besteht darin, dass unter Verwendung von headers[] vorherigen Werten überschreibt, während add_header wird nicht.

Von der wsgiref.headers docs (bezogen auf die GAE docs), "Festlegen eines Headers löscht alle vorhandenen Werte für diesen Header, fügt dann einen neuen Wert am Ende der umbrochenen Header-Liste."

+2

Um die Cache-Steuerung zu setzen, verwenden Sie einfach 'headers []', da diese Header eineindeutig sind (zB wollen Sie nicht mehrere 'Pragma'-Header anzeigen). –