浏览器的同源策略:协议相同、域名相同、端口相同。所有浏览器厂商遵循这种策略。
非同源(跨域)共有三种行为受到限制:
这种同源性会有效的阻止csrf(跨站请求)攻击。
浏览器请求分为两种:(cors请求)
对于简单请求浏览器会直接发送请求,服务器返回响应给浏览器,并在响应体中携带相关信息供浏览器判断是否跨站
2. 非简单请求
例如put、delete、content-type:aplication/json
非简单请求会在正式通信之前,使用options方法发起一个预检请求到服务器,浏览器先询问服务器当前网页所在的域名是否在服务器的许可名单中,以及可以使用那些http方法和头信息字段,只有得到肯定答复,浏览器才会发出正式的xhr请求,否则报错。
由浏览器和服务器根据http头域或access-control开头相关字段协商处理
2. jsonp跨域
利用script或img等标签能够跨域加载来实现,浏览器通过get方法加载这些标签(业务对于一些重要的请求,不能够使用get方法提交数据,必须使用post方法,这样就无法利用jsonp进行跨域请求)
3. 服务器转发
如对本文有疑问, 点击进行留言回复!!
POJ 3692 Kindergarten(挑战程序设计竞赛,二分图最大团)
网友评论