同源和跨域

本文详细解析了浏览器的同源策略,解释了其重要性,并介绍了几种跨域访问的解决方案,包括JSONP、CORS、WebSocket、反向代理Nginx等,帮助开发者理解并解决跨域问题。

说到同源,肯定想到七步诗中本是同根生,说到跨域,想到了跨种族额......,想什么啊喂,跨种族结婚啊,不是那个跨种族结婚,是人类跨种族结婚啊喂。咳......

啊,说到同源,那么什么是同源呢?草步影:一个妈生的就是同源,嗯......很好。草步影:那么如果同母异......。麻烦离纯洁的博客远一点啊喂。

那么其实同源就是同个妈,不是,同协议,同域名,同端口

同协议:http https要看清

同域名:www.aichifan.com   www.aichimian.com

同端口:80 443 81

接下来就是跨种......跨域了。由于浏览器的同源政策,不允许不同源的互相操作cookie,dom,ajax请求。那么这个同源政策有没有必要呢

其实是非常有必要的:cookie存放了一些登录密码等重要信息,一旦掌握后果不堪设想,表单提交浏览器可没有同源政策的规定。

但是我们发送请求又觉得这很麻烦,所以要有解决办法。

jsonp  :  不是json放了一个屁。是利用rel,src等不守同源政策影响的属性请求,这里着重用的是script标签的src属性,由于script里面可以执行js代码,就像引入js文件一样,那么可以在本文件中先定义一个函数,然后把函数名当做参数传递拼接在src地址后面,由于是通过src属性的所以只能是get请求。

CORS : 直接在请求头中设置允许访问以php为例:header('Access-Control-Allow-Origin:*');header('Access-Control-Allow-Origin:协议+域名')

WebSocket : 是一种通信协议,ws:// (非加密) wss:// (加密),没有同源政策,只要服务器支持就可以跨源通信。WebSocket敢这么不怕信息安全问题就是因为有WebSokect请求头有Origin属性,可以看到请求源,服务器判断该请求源是否安全。

反向代理Nginx:中转服务器,注意是个服务器,A向B服务器发送请求,B服务器再向C服务器发送请求,服务器间没有跨域问题。

转载于:https://www.cnblogs.com/wchjdnh/p/10849080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值