|
前端的靜態(tài)資源請求有個特點是冪等,一般在文件名上會帶上文件的哈希值或版本號,如果 URL 不變一般則認為內(nèi)容不變。 可以配置 Cache-Control 來設(shè)置強緩存或 304 緩存靜態(tài)資源;但首次訪問或靜態(tài)資源更新時,還是會需要去請求 Web 應(yīng)用服務(wù)器(源站)獲取內(nèi)容。 所以沒有緩存時,首次資源請求的速度則是由用戶的電腦和 Web 應(yīng)用服務(wù)器的物理距離決定的。CDN 服務(wù)一般在全國/全球有非常多的服務(wù)器節(jié)點,如果用戶可以請求就近的 CDN 服務(wù)器節(jié)點,由 CDN 服務(wù)器去代理請求源站獲取內(nèi)容并且緩存該文件,之后附近用戶的請求就可以直接返回 CDN 服務(wù)器上緩存的文件,請求的速度就會加速非常多,文件越大則效果越明顯。 CDN 服務(wù)之所以可以讓用戶請求到就近的服務(wù)器節(jié)點九九六三四零九五,利用的是 DNS 的 CNAME 記錄。在 DNS 服務(wù)商上把你網(wǎng)站域名 j到 CDN 提供的域名,DNS 服務(wù)商提供了智能解析功能,會根據(jù)用戶的 IP 地址返回就近的 CDN 服務(wù)器的 IP 地址。 CDN 服務(wù)上配置了源站(IP 地址或域名)??梢栽O(shè)置不同 URL 的緩存的時間、自定義一些響應(yīng) Header、訪問控制、流量控制等等。 如果還想加速第一次請求時的速度,可以使用預(yù)取/預(yù)熱功能,CDN 服務(wù)器節(jié)點會主動去源站先取得資源文件并緩存,用戶請求時則直接返回 CDN 服務(wù)器上的緩存內(nèi)容。
|