Http
accept-encoding
在服務端開啟gzip壓縮,請求帶有accept-encoding:gzip頭的情況下,響應頭返回Vary:Accept-Encoding,因為在瀏覽器和服務器之間會存在一個或多個緩存服務器,而有些緩存服務器的實現會忽略content-encoding頭,通過采用Vary:Accept-Encoding頭可以避免緩存服務器不知道返回客戶端什么版本,是壓縮版本還是非壓縮版本;
-- 具體可參加HTTP 協議中 Vary 的一些研究
Etag & If-none-match、last-modified & if-modified-since
If-none-match 設置在請求頭中,制作一個有條件的請求。對于GET和HEAD請求類型來說,服務器在只要有一個資源的ETag不匹配 if-none-match給出的值數組的情況下,發回一個響應碼為200的請求資源包;對于其他的請求方法,如果存在的資源的ETag不匹配if-none-match給定的值數組中的任何一個的話,則服務器受理請求;
last-modified & if-modified-since是判斷資源的最后修改時間來檢測資源緩存的有效性的,而ETags和if-none-match可以是資源的任何一個屬性,比如資源的MD5;
當if-modified-since和if-none-match一塊使用時,if-none-match優先判斷,如果if-none-match匹配的情況下,再判斷if-modified-since