浏览上下文组
以这两种方式打开的页面
-
<a />标签方式 -
window.open()方式
打开的页面和源页面之间建立了连接,新打开的页面可通过window.opener()与源页面通信,这两个页面称为在同一个浏览上下文组。
例外
<a />打开新页面时,设置ref属性为ref = "noopener noreferer",则新打开的页面与源页面之间像字段表达那样没有连接、没有引用,不在同一浏览上下文组。
同一站点
两个url的协议、根域名都相同,称它们为同一站点。
渲染进程的分配
进程分配
对于同一个浏览上下文组内的同一站点会共用一个渲染进程。
优点
- 同一站点可能会依赖相同的资源,共用渲染进程可复用共同资源、节省创建进程的开支。
- 同一站点共用渲染进程安全所带来的隐患也较低。
同源策略依然作用
共用渲染进程的页面,依然会受到同源策略的限制,属于同一站点、但不属于同源站点,也不能通过window.opener()对源页面进行操作。