同源策略(未完成).md

同源策略

怎样才算同源?

简单来说:协议相同、域名相同、端口相同则称为同源

协议
  • TCP协议
    是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。

  • UDP协议
    它是一个“非连接”协议。就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送,而且发送了之后不管对方是否接受到(即只管发送,发了不管)

端口
  • http协议的端口默认为80;https默认为443。如果不采用默认端口,那么在访问时需要在域名后加上端口号

  • 什么是端口
    当目的主机接受到数据后,将根据报文首部目的的端口号,把数据发送到相应端口,同时,端口相应的进程会领取数据并且等下一组数据的到来。当然发送数据时也需要启动端口,这样,数据包将会标识有源端口(即域名确定的是主机的位置,而端口确定了数据发给主机中的什么地方[或者说哪个程序])

域名

www.baidu.com中,baidu.com是一级域名,www.baidu.com是二级域名

二级、三级,…域名不同也不算同源

同源究竟是怎么回事?

对于这个问题!网上的博客千篇一律!但是在百度百科上搜索了以下,然后再由于一个小想法,无意中让我明白了这个让我百思不得姐的同源策略的更深层含义:

首先明白以下几点:

  • 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能。浏览器是针对同源策略的一种实现——也就是说:同源策略是针对于浏览器的,限制的是浏览器
  • 下面再看一个栗子(具体代码就不写了,你可以亲自试一下):我们通过原生Ajax去请求百度搜索框的url,你会发现控制台报错了!(由于Ajax受同源策略的限制,当然会报错)

在这里插入图片描述

但是,我们再看响应,你会发现本次请求虽然跨域了,但是依然成功的请求到了数据:

在这里插入图片描述

所以通过上述实验,我们便能总结出同源策略更深层的含义(或者说是本质——还是别这么说,这只是皮毛层面的理解,只是为了好表述而已):

同源策略限制的是浏览器,即限制的是浏览器是否允许来自不同源的内容在本页面中使用,而并不是限制浏览器不能获取不同源的数据。再说的简明点就是——在同源策略的限制下,虽然你的请求跨域了,但是数据依然能获取到,只是由于同源策略的限制,浏览器不允许使用获取到的数据!再再说的简明点就是——同源策略限制的是浏览器是否允许使用来自不同源的数据,而与‘浏览器能否获取到另一个源中的数据’并无关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值