http請求設計
API設計:url中加vn表示版本,節(jié)點表示業(yè)務、http方法表示動作(GET\POST\PUT\DELETE)、響應碼、狀態(tài)碼
攔截器:HttpInterceptor
包括以下功能:身份認證token、統(tǒng)一相應處理、異常解決
Web緩存
數(shù)據(jù)庫緩存、服務端緩存(代理服務器緩存和CDN緩存)、瀏覽器端緩存、Web應用層緩存
http緩存就是Web緩存中的瀏覽器端緩存中的基于http協(xié)議實現(xiàn)的那一種,也是平時最常見的一種緩存。
http緩存過程


強制緩存
expires:服務器返回的到期時間,用在HTTP1.0,存在緩存命中誤差。HTTP1.1中用Cache-Control替代
Cache-Control:private客戶端緩存,public客戶端和代理服務器緩存(對于FEdev,兩者無區(qū)別)、max-age=xxx緩存內(nèi)容在xxxs后失效,no-cache對比緩存進行緩存數(shù)據(jù)驗證、no-store不緩存
對比緩存(協(xié)商緩存)
Last-Modified:第一次請求時,服務器返回的資源最后修改時間
If-Modified-Since:再次請求時,瀏覽器通知服務器,上次請求時返回資源最后修改時間
Etag:服務器響應請求時,返回資源唯一標識
If-None-Match:再次請求服務器時,通過此字段通知服務器客戶段緩存數(shù)據(jù)的唯一標識。

緩存對比
對于強制緩存,服務器通知瀏覽器一個緩存時間,在緩存時間內(nèi),下次請求,直接用緩存,不在時間內(nèi),執(zhí)行比較緩存策略。
對于比較緩存,將緩存信息中的Etag和Last-Modified通過請求發(fā)送給服務器,由服務器校驗,返回304狀態(tài)碼時,瀏覽器直接使用緩存。
參考資料:
HTTP2簡介和web優(yōu)化
http緩存機制及原理
Angular中優(yōu)雅編寫http請求
Angular7 HttpClient處理多個請求
HttpClient高并發(fā)下性能優(yōu)化-http連接池