浏览器跨域判定的原理

众所周知出于安全的考虑,浏览器有个“同源策略 ”,对于不同源的站点之间的相互请求会做限制(注意:跨域限制是浏览器行为,不是服务器行为)。

同源的要求:所谓同源是指域名(或IP)、协议、端口都相同。

上图指出了不同形式的链接是否与其同源


浏览器和服务器的合作判定跨域步骤如下:

1、浏览器先根据同源策略对前端页面和后台交互地址做匹配,若同源,则直接发送数据请求。若不同源,则发送跨域请求。

2、服务器解析程序收到浏览器跨域请求后,根据自身配置返回对应文件头,若未配置过任何允许跨域,则文件头里不包含Access-control-Allow-origin字段。若配置过域名,则返回Access-control-Allow-origin + 对应配置规则里的域名的方式。

3、浏览器根据接受到的http文件头里的Access-Control-Allow-origin字段做匹配,若无该字段,说明不允许跨域,若有该字段,则对字段内容和当前域名做对比,如果同源,则说明可以跨域,浏览器发送请求。如果不同源,则说明该域名不可跨域,不发生请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容