2010-06-25 31 views
9

Cách thích hợp để đặt kiểm soát bộ nhớ cache là gì?Google App Engine - tiêu đề [] và tiêu đề.add_header() để kiểm soát bộ nhớ cache

Đôi khi tôi thấy việc sử dụng các tiêu đề []

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" 

lần khác, tôi thấy 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") 

Và thậm chí là một sự pha trộn của cả hai tiêu đề [] và 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") 

Trả lời

10

Sự khác biệt là sử dụng headers[] sẽ ghi đè lên các giá trị trước đó, trong khi add_header sẽ không.

Từ wsgiref.headers docs (được tham chiếu bởi GAE docs), "Đặt tiêu đề sẽ xóa bất kỳ giá trị hiện có nào cho tiêu đề đó, sau đó thêm giá trị mới vào cuối danh sách tiêu đề được bao bọc".

+2

Vì vậy, để đặt điều khiển bộ nhớ cache, chỉ cần sử dụng 'tiêu đề []' vì các tiêu đề này có giá trị đơn (bạn không muốn nhiều tiêu đề 'Pragma' xuất hiện, chẳng hạn). –

Các vấn đề liên quan