協議相同
、域名相同
、端口相同
。一個完整的URL能夠分爲幾個部分:好比 https://pan.baidu.com:80
其中協議就是https://
,域名就是pan.baidu.com
,端口就是80
html
域名還分爲主域和子域,
baidu.com
就是主域,pan
就是子域 好比zhidao.baidu.com
和pan.baidu.com
他們的主域是相同的,只是屬於不一樣的子域。git問題:固然在這裏有人就會問他們兩個屬於同源嗎?
很不幸他們兩個
不屬於
同源github
https://pan.baidu.com:80
和http://pan.baidu.com:80
,協議不一樣,不算同源跨域
https://pan.baidu.com:8080
和https://pan.baidu.com:3000
,端口不一樣,不算同源瀏覽器
https://zhidao.baidu.com:80
和https://pan.baidu.com:80
,域名不一樣,不算同源安全
注意: 通常的服務都佔用的是默認的80端口,因此咱們通常狀況下是看不到端口號的。網站
同源政策的目的,是爲了保證用戶信息的安全,防止惡意的網站竊取數據。
舉例: 設想這樣一種狀況:A網站是一家銀行,用戶登陸之後,又去瀏覽其餘網站。若是其餘網站能夠讀取A網站的 Cookie,會發生什麼?code
很顯然,若是 Cookie 包含隱私(好比存款總額),這些信息就會泄漏。更可怕的是,Cookie 每每用來保存用戶的登陸狀態,若是用戶沒有退出登陸,其餘網站就能夠冒充用戶,隨心所欲。由於瀏覽器同時還規定,提交表單不受同源政策的限制。 因而可知,"同源政策"是必需的,不然 Cookie 能夠共享,互聯網就毫無安全可言了。htm
總結: 協議,子域,主域,端口任意一個不一樣,都不算同源,但並不意味着不算同源就徹底不能訪問,這就是跨域資源共享的知識,我後面會爲你們詳細介紹跨域的多種方式blog
參考: www.ruanyifeng.com/blog/2016/0…
更多文章請轉移:github.com/wangyicong