首先可以明確的告訴你,阻止Cookie並不會降低網站訪問速度,反而會加快網站訪問速度。
可能有些朋友想不明白,現在我給大家講解一下。
雖說Cookie是儲存在客戶端(瀏覽器)上的,但是我們在向伺服器發出請求時,本地的Cookie資料都會附加到請求頭中一併發給伺服器。我們以悟空問答這個網站為例,用調式工具檢視其中一個請求,然後看下它的Request Headers資訊,如下圖示:
從上圖中可以看出,當前頁面中所涉及的請求中都會將Cookie附加到請求頭中傳遞給伺服器端。這樣一來,Cookie本身就加大了請求資料的開銷,所以我們禁用了Cookie會減小這個請求開銷,理論上速度反而會變快。
但現實情況並不是這樣簡單了,我們知道,HTTP協議本身就是無狀態的,但業務要求我們能夠保持會話,這就需要用到Cookie和Session技術,而Session預設又是基於Cookie的。所以如果禁用了Cookie就會導致Session機制異常。
為了解決這種尷尬,我們的解決辦法是:
動靜分離:將動態頁面和靜態資源分離,以不同的域名來訪問,這樣可以提高瀏覽器的併發能力;
靜態資源站點禁用Cookie:因為靜態資源是不需要保持會話狀態的,所以Cookie資訊對它們無用,禁掉後可以減少Cookie汙染,也可以加快請求速度。
首先可以明確的告訴你,阻止Cookie並不會降低網站訪問速度,反而會加快網站訪問速度。
可能有些朋友想不明白,現在我給大家講解一下。
雖說Cookie是儲存在客戶端(瀏覽器)上的,但是我們在向伺服器發出請求時,本地的Cookie資料都會附加到請求頭中一併發給伺服器。我們以悟空問答這個網站為例,用調式工具檢視其中一個請求,然後看下它的Request Headers資訊,如下圖示:
從上圖中可以看出,當前頁面中所涉及的請求中都會將Cookie附加到請求頭中傳遞給伺服器端。這樣一來,Cookie本身就加大了請求資料的開銷,所以我們禁用了Cookie會減小這個請求開銷,理論上速度反而會變快。
但現實情況並不是這樣簡單了,我們知道,HTTP協議本身就是無狀態的,但業務要求我們能夠保持會話,這就需要用到Cookie和Session技術,而Session預設又是基於Cookie的。所以如果禁用了Cookie就會導致Session機制異常。
為了解決這種尷尬,我們的解決辦法是:
動靜分離:將動態頁面和靜態資源分離,以不同的域名來訪問,這樣可以提高瀏覽器的併發能力;
靜態資源站點禁用Cookie:因為靜態資源是不需要保持會話狀態的,所以Cookie資訊對它們無用,禁掉後可以減少Cookie汙染,也可以加快請求速度。