同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,若是缺乏了同源策略,則瀏覽器的正常功能可能都會受到影響。能夠說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。html
同源策略
是由Netscape
提出安全策略。目前來講,全部支持JavaScript
的瀏覽器都支持同源策略
。跨域
對於任意的網址來講,域名
、端口
、協議
都是必不可少的一部分。瀏覽器
例如:安全
1 http://www.baidu.com
在上面這個地址當中,http
是協議,而www.baidu.com
就是域名。服務器
再好比:測試
http://localhost:8080
上面的這個域名在平常的測試當中比較常見,後面的8080
就是端口
號。spa
通常來講,所謂的同源,指的是域名
、協議
、端口
相同。code
好比:htm
http://www.test.com/a/index.html 和 http://www.test.com/b/index.html 同源
上面的兩個地址當中,協議、域名、端口三者皆相同,因此屬於同源狀態。blog
再好比:
http://www.test.com:8080/index.html 和 http://www.test.com:8081/index.html
上面的兩個地址看上去相同,可是端口號
不一樣,因此並非處於同源
.
http://a.test.com/a.html 和 http://b.test.com/a.html 不一樣源
上面的兩個地址由於域名不一樣,因此也並非處於同源狀態
。
同源策略
是屬於瀏覽器的行爲,目的是爲了保護本地的數據不被JavaScript
代碼獲取回來的數據污染,所以攔截的是客戶端發出的請求回來的數據接收,也就是說請求發送了,服務器響應了,可是沒法被瀏覽器接收。
Tip:雖說同源策略保證避免了數據污染,可是也爲開發數據交互請求製造了必定的難度,因此纔會有了各類跨域之說。