浏览器同源策略和跨域方法

什么是同源策略

同源策略 (Same-Origin Policy) 最早由 Netscape 公司提出, 所谓同源就是要求, 域名, 协议, 端口相同。非同源的脚本不能访问或者操作其他域的页面对象(如DOM等)。作为著名的安全策略, 虽然它只是一个规范, 并不强制要求, 但现在所有支持 javaScript 的浏览器都会使用这个策略。 以至于该策略成为浏览器最核心最基本的安全功能, 如果缺少了同源策略, web的安全将无从谈起。

同源策略要求三同, 即: 同域, 同协议, 同端口。

同域即host相同, 顶级域名, 一级域名, 二级域名, 三级域名等必须相同, 且域名不能与 ip 对应;
同协议要求, http与https协议必须保持一致;
同端口要求, 端口号必须相同。

什么是跨域?跨域有几种实现形式

只要协议、域名、端口有任何一个不同,都被当作是不同的域,跨域就是访问非本域的资源。

跨域实现方式
1、JSONP
2、CORS
3、降域
4、PostMessage

JSONP 的原理是什么

JSONP是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,老式浏览器全部支持,服务器改造非常小。它的基本思想是,AJAX 无法跨域是受到“同源政策”的限制,但是带有src属性的标签(例如

你可能感兴趣的:(浏览器同源策略和跨域方法)