Java - 探究前后分离带来的跨域问题

文章目录

  • 为什么会产生跨域问题
  • 同源策略 (Same-origin policy)
  • 解决方案
    • 服务端解决方案
      • 简单请求
      • 复杂请求
      • 测试
        • 简单请求测试
        • 复杂请求测试
    • 代理服务器,反向代理接口请求
    • jsonp 方式

Java - 探究前后分离带来的跨域问题_第1张图片


为什么会产生跨域问题

1995年,Netscape 公司出于安全的考虑在浏览器中引入了“同源策略”。

跨域问题只出现在浏览器访问的页面,因为这是浏览器为了保户用户安全而制造的策略。假如没有这层保护,网站就很容易受到跨站伪造请求(CSRF)的攻击。

在这里插入图片描述


同源策略 (Same-origin policy)

浏览器端对请求的处理中,如果两个 URL 的协议、域名和端口都相同,我们就称这两个URL 同源

我们来举几个例子

同源

  http://www.xxxx.com/index
  http://www.xxxx.com/module/path1

非同源

 http://www.xxxx.com/index
 https://www.xxxx.com/module/path1
 http://www.xxxx.com/index
 http://www.yyyy.com/module/path1
 http://www.xxxx.com/index
 http://www.xxxx.com:8081/module/path1

两个相同的源之间浏览器默认其是可以相互访问资源和操作 DOM 的。两个不同的源之间若想要相互访问资源或者操作 DOM,那么会有一套基础的安全策略的制约。

  • 安全性: 浏览器要防止当前站点的私密数据不会向其他站点发送

如当前站点的Cookie,LocalStorage,IndexDb 不会被发送到其他站点或被其他站点脚本读取到。
无法跨域获取Dom,无法发送Ajax请求。

  • 可用性:大型站点的图片,音视频等资源,希望部署在独立服务器上,为缓解当前服务的压力,开放某些特定的方式,访问非同源站点

如:

你可能感兴趣的:(【Java,-,Java,Base】,跨域问题)