同源和跨域

2019/05/11 16:24
阅读数 25

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

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

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

同协议: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服务器发送请求,服务器间没有跨域问题。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部