首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >跨域介绍

跨域介绍

作者头像
收心
发布2025-03-08 10:01:32
发布2025-03-08 10:01:32
1950
举报
文章被收录于专栏:Java实战博客Java实战博客

跨域是指在Web开发中,浏览器出于安全考虑,限制一个网页(源)对另一个网页(源)的资源进行访问的机制。这种限制是为了防止恶意网站获取用户的敏感信息。

什么是跨域?

  • 同源策略:浏览器的同源策略要求,只有当两个URL具有相同的协议、域名和端口时,它们才能相互访问。例如:
    • https://example.com:443/page1https://example.com:443/page2 是同源的。
    • https://example.comhttp://example.com 是不同源的(协议不同)。
    • https://example.comhttps://api.example.com 是不同源的(子域不同)。
  • 跨域请求:当你尝试从一个源(例如,https://example.com)请求另一个源的资源(例如,https://api.example.com)时,就会发生跨域请求。

如何保证不跨域?

如果你希望确保不发生跨域,可以采取以下措施:

  1. 使用同源策略
    • 确保所有的请求都来自相同的协议、域名和端口。
  2. 使用相对URL
    • 在请求资源时使用相对URL而不是绝对URL。例如,使用 /api/resource 而不是 https://api.example.com/resource
  3. CORS(跨源资源共享)
    • 如果需要进行跨域请求,可以在服务器端设置CORS头部来允许特定的源访问资源。这样,浏览器在请求时会检查这些头部,决定是否允许请求。
  4. JSONP
    • 对于GET请求,可以使用JSONP(JSON with Padding)技术,它允许跨域请求,但仅限于GET请求。
  5. 代理服务器
    • 可以通过设置一个代理服务器来转发请求,从而避免直接进行跨域请求。客户端只与代理服务器通信,代理服务器再与目标服务器通信。

总结

跨域是Web安全的一部分,确保用户数据的安全。要避免跨域,可以通过使用同源策略、相对URL、CORS、JSONP或代理服务器等方法来实现。

保证不跨域总结就是:

跨域的判断主要依赖于协议、域名和端口的匹配。只要这三者中的任何一个不同,就会被视为跨域。路径的不同不会影响同源策略的判断。

  • 相同协议 比如都是:HTTP 或 HTTPs
  • 相同域名。都是:www.baidu.com
  • 相同端口。都是443 或 80

直接看案例

https://www.baidu.com http://www.baidu.com 算跨域。

https://www.baidu.com https://ok.baidu.com 算跨域。

http://www.baidu.com:80 http://www.baidu.com:9999 算跨域。

https://www.baidu.com/abc https://www.baidu.com/bcd 不算跨域

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是跨域?
  • 如何保证不跨域?
  • 总结
  • 保证不跨域总结就是:
    • 直接看案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档