Google App Engine — headers[] и headers.add_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"

В других случаях я вижу 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")

И даже сочетание заголовков [] и 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")

person user365918    schedule 25.06.2010    source источник


Ответы (1)


Разница в том, что использование headers[] перезапишет предыдущие значения, а add_header — нет.

Из документов wsgiref.headers (упомянутых в документах GAE), "Настройка заголовок удаляет все существующие значения для этого заголовка, а затем добавляет новое значение в конец списка обернутых заголовков».

person Matthew Flaschen    schedule 25.06.2010
comment
Таким образом, чтобы установить управление кешем, просто используйте headers[], поскольку эти заголовки являются однозначными (например, вы не хотите, чтобы появлялось несколько заголовков Pragma). - person David Underhill; 25.06.2010