浏览器的同源策略
所谓同源策略,就是指浏览器会限制从一个源加载的网页和脚本与其他源的资源交互。这是一种用于隔离潜在恶意软件的机制。
可能有人会奇怪,明明网页是自己写的,自己怎么会请求含有恶意程序的URL呢?话虽如此, 可是我们在开发中经常会引入第三方的库,当我们通过script
标签将它们引入的时候是没有限制的。而它们之中就可能含有对恶意URL的请求。
所谓同源,就是指两个URL的协议、主机、端口要一致。这就能看出同源策略的思路–“信任自家人”。因为同源的两个URL一般都是来自同一个企业或者个人,自己人不会坑自己人。
例如对http://store.company.com/dir/page.html
的同源检测:
注:上面说“限制”,既指浏览器限制脚本发起跨域请求,也指浏览器允许发起跨域请求,但是响应被浏览器拦截
CORS
同源策略默认阻止跨域获取资源。但是CORS给了web服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。
CORS,即Corss-Orgin Resource Sharing,跨域资源共享。这是一个由一系列HTTP