文章出處
文章列表
最近面試,被問到了HTTP的相關知識,深知自己的不足,于是惡補了一下。
請求頭的字段
user-agent
pragma
Cache-control
Referer
Accept
Cookit
If-Modified-Since
If-None-Match
響應頭的字段
content-type
Date
ETag
Last-Modefied
Age
Cache-Control
Access-Control-Allow-Origin
Etag
如果配置了Etag,在第一次請求的時候,響應頭會下發ETag屬性,再下一次請求,會帶上If-None-Match,如果服務端沒有匹配的ETag,返回200和新的ETag。如果有匹配的Etag,返回304請求。
緩存的種類
強緩存和協商緩存
新鮮度和有效性
強緩存用Cache-Control、Expires、Pragma來控制,如果在有效期內不會發任何請求到服務器
協商緩存用ETag、Last-Modified、If-None-Match、If-Modified-Since來控制,特點是會發一個請求來確認緩存是否有效,如果有效就返回304,省去傳輸內容的時間。
如果瀏覽器發起一個請求,發現本地的資源已經過期,則會附加一個If-None-Match
注意,按F5刷新瀏覽器,會忽略Cache-Control和Expires
強緩存
如果同時設置了Cache-Control和Expires,Expires會忽略。
注意,強緩存有效的前提下,不會發送請求到服務器,也就是說,不會有協商緩存什么事情。
文章列表
全站熱搜