說說瀏覽器的同源策略

同源策略(Same origin policy)使得來自於不一樣來源的腳本,沒法讀取或修改當前源對象。它是瀏覽器最核心也是最基本的安全功能。css

1 同源判斷規則

若是域名或 IP 地址、端口與協議都相同,那麼就會被斷定爲同源。html

假設有這麼一個 URL:http://www.deniro.net,下表中的 URL 與此比較,判斷是否同源:vue

URL 是否同源 緣由
http://www.deniro.net/welcome.html 同源 -
https://www.deniro.net/welcome.html 不一樣源 協議不一樣
http://www.deniro.net:8080/welcome.html 不一樣源 端口號不一樣
http://book.deniro.net/welcome.html 不一樣源 域名不一樣

2 跨域加載資源

<script><img><iframe><link> 標籤不受同源策略限制,能夠跨域加載資源。 好比咱們能夠在咱們的項目中加載 CDN 上的 Vue.js: <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>跨域

CDN 的全稱是 Content Delivery Network ,即 內容分發網絡 。CDN 是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,經過中心平臺的負載均衡 、 內容分發 、 調度等功能模塊,使用戶就近獲取所需內容,下降網絡擁塞,提升用戶訪問響應速度和命中率 。瀏覽器

這些標籤加載資源時,瀏覽器會發起 Get 請求,獲取這些資源。但在加載 JavaScript 時,限制了讀寫返回內容的權限。安全

3 XMLHttpRequest 對象

XMLHttpRequest 對象能夠與服務器交換數據。具體功能以下:服務器

  • 在不從新加載頁面的狀況下更新網頁。
  • 在頁面已加載後從服務器請求數據。
  • 在頁面已加載後從服務器接收數據。
  • 在後臺向服務器發送數據。

爲了安全起見,XMLHttpRequest 對象,在默認狀況下,不能跨域訪問資源,因此在 Ajax 開發中必定要注意哦O(∩_∩)O~網絡

4 XMLHttpRequest 跨域訪問標準

瀏覽器會經過目標域所返回的 HTTP 頭(Access-Control-Allow-Origin)來斷定是否容許跨域訪問,由於 JavaScript 沒法操縱 HTTP 頭。負載均衡

相關文章
相關標籤/搜索