用戶在訪問網站過程中,請求可能會被中間人劫持。按照劫持的方式,劫持可分為兩類:一類是在域名解析層面進行劫持,一類是通過http 302跳轉方式進行劫持。
無論是域名解析層面的劫持,還是應用層http 302層面的劫持,其本質都是服務端的偽裝。可以通過在用戶與CDN節點之間,CDN節點內部,CDN節點至客戶源站之間采用全鏈路認證+加密通信機制,確保用戶請求不被劫持。這就要求客戶端必須嚴格校驗服務器端身份,服務端需出示權威機構頒發的證書,并證明具備對客戶端加密內容進行解密的能力,才能通過認證。客戶端和服務端之間的校驗機制,最常用的就是全鏈路https協議方式。
以下為全鏈路https原理圖:

針對域名解析層面的劫持,還可以采用HTTPDNS的方式。該方式下,通常由客戶端app提前發起https協議的待訪問域名解析請求,獲取目的節點IP后向目標IP發起正式url的https請求,從而避免域名劫持,常用于移動端APP的訪問。