前端基础整理【跨域】【服务端渲染】

跨域

简介

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的:

1、资源跳转:A链接、重定向、表单提交

2、资源嵌入: < link>、< script>、< img>、< frame>等dom标签,还有样式中background:url()、@font-face()等文件外链

3、脚本请求: js发起的ajax请求、dom和js对象的跨域操作等

其实我们通常所说的跨域是狭义的,是由 浏览器同源策略 限制的一类请求场景。

同源策略是针对浏览器的。

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。
所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

协议、主机和端口都相同,则同源:

  • http://www.nealyang.cn/index.html 调用http://www.nealyang.cn/server.php 非跨域
  • http://www.nealyang.cn/index.html 调用 http://www.neal.cn/server.php 跨域,主域不同
  • http://abc.nealyang.cn/index.html 调用 http://def.nealyang.cn/server.php 跨域,子域名不同
  • http://www.nealyang.cn:8080/index.html 调用 http://www.nealyang.cn/server.php 跨域,端口不同(http默认端口80,https默认443)
  • https://www.nealyang.cn/index.html 调用 http://www.nealyang.cn/server.php 跨域,协议不同
  • localhost 调用 127.0.0.1 跨域
URL                              说明                    	   是否允许通信

http://www.demo.com/a.js
http://www.demo.com/b.js         同一域名,不同文件或路径           允许
http://www.demo.com/lab/c.js

http://www.demo.com:8000/a.js
http://www.demo.com/b.js         同一域名,不同端口                不允许
 
http://www.demo.com/a.js
https:/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值