同源策略你真的吃透了吗?

前言

同源策略几乎是前端面试中几乎必然问到的问题。但是很多同学对同源策略的理解不够深入,今天我们就来聊聊同源策略的问题。
首先让我们来想想这几个问题:

  1. 什么是同源?
  2. 为什么要有同源策略?
    一句话解释同源就是:相同协议相同域名相同端口称为同源

url

浏览器的url我们可以分为几个部分,比如http://pan.baidu.com:80。

url中的主域(baidu.com)
url中的子域(pan)
一个主机可以有很多端口,由于一般的服务都占用的是默认的80端口,所以我们一般情况下是看不到端口号的。

一个url的主域可能有多个子域
例如 pan.baidu.com zhidao.baidu.com
pan.baidu.com和zhidao.baidu.com虽然都是百度旗下的,但是浏览器并不会直接允许zhidao.baidu.com访问pan.baidu.com的内容。这就说明子域不同不算同源

ps:虽然浏览器认为pan.baidu.com和zhidao.baidu.com不是同域,但是毕竟都是一家的,所以在浏览器端进行一些设置之后,还是可以访问到的。这是跨域的一种方式,我们下一篇文章来详细介绍跨域的多种方式。

**虽然不同的端口都是同一个域下的,但是同源策略不一定相同。**所以就会出现,不同端口不算同源的现象。可能80端口不允许别人访问,但是90端口就有可能允许任何人访问。这个谁能访问,可以是由服务端设置的,这也是跨域的一种方式,我们后续详细的来讲。

https协议就好比是女生,http协议好比是男生,协议不相同不能访问,所以协议不同也不算同源

end

所以总的来说,协议,子域,主域,端口任意一个不同,都不算同源,但并不意味着不算同源就完全不能访问,这就是跨域的知识,我们下篇文章再来为大家详细介绍跨域的多种方式。

你可能感兴趣的:(计算机网络,计算机网络)